Skip to main content

Full text of "MSX Guia Do Usuário (BR)"

See other formats


OSBORNE / McGRAW-HILL 

SEGUNDA EDIÇÃO REVISADA 


Adaptação 

Luis Sérgio Young Moreira 
Oscar Júlio Burd 


Paul Hoffman 




msH 

GUlfi □□ usutoo 

paul hoffman 



msH 

GUlfl □□ USUflRlD 

paul hoffman 


Tradução 

Lars Gustav Erik Unonius 
Engenheiro Eletrônico 

Revisão Técnica 

Oscar Júlio Burd 

Luiz Sérgio Young Moreira 


McGraw-Hill 
São Paulo 

Rua Tabapuã, 1.105, Itaim-Bibi 
CEP 04533 

(01 1) 881-8604 e (01 1) 881-8528 

Rio de Janeiro • Lisboa •Porto • Bogotá • Buenos Aires • Guatemala 

• Madrid • México • New York • Panamá • San Juan • Santiago 

Auckland • Hamburg • Kuala Lumpur • London • Milan 

• Montreal • New Delhi • Paris • Singapore • Sydney • Tokyo 

• Toronto 


Do original 
The MSX Book 


Copyright © 1985 by McGraw-Hill, Inc. 

Copyright © 1986, 1987 da Editora McGraw-Hill, Ltda. 


Todos os direitos para a língua portuguesa reservados pela Editora McGraw-Hill, Ltda. 

Nenhuma parte desta publicação poderá ser reproduzida, guardada pelo sistema “reírieval” ou 
transmitida de qualquer modo ou por qualquer outro meio, seja este eletrônico, mecânico, de 
totocópia, de gravação, ou outros, sem prévia autorização, por escrito, da Editora. 


Coordenadora de Revisão: Daisy Pereira Daniel 
Capa : Layout : Cyro Gioidano 
Ane- final: Jaime Marques 


Dados de Catalogação na Publicação (CIP) Internacional 
1 Câmara Brasileira do Livro, SP, Brasil) 


Hoffman, Paul. 

l 7m n MS T X r : Ç* * US ™ 1 Paul H ° ffman í ^ução Lars Gustav Unoruus ; revisão técnica 
2. ed. Oscax Juüo Burd, Luiz Sérgio Young Moreira. - São Paulo : McGraw-Hill, 1987. 

1. MSX (Computadores) I. Título. 


86-0356 


CDD-001.64 


índices para catálogo sistemático: 

1. MSX : Computadores : Processamento de dados 
001.64 



AGRADECIMENTOS 


Gostaria de agradecer a muitas pessoas pela ajuda em fazer deste livro um sucesso: Phil 
54oon da Yamaha emprestou-me um computador MSX durante a elaboração deste livro. John 
® Chris Laison da Microsoft Corporation também emprestaram-me partes do computador 
- forneceram informações valiosas de mercado. Yuuji Kitamura ajudou-me na aquisição de peças 
'f> MSX no Japão e explicou como os japoneses vendem e utilizam os computadores domésticos. 

- — Nicoloff revisou muitos dos capítulos referentes ao MSX-BASIC e forneceu sugestões 
r_;osas de como explicai programação aos usuários iniciantes em computadores. David Richie 
forneceu ajuda e idéias para muitos dos exemplos do livro, apesar de não gostar de BASIC. Denise 
rrurose da OSBORNE/McGRAW-HILL também forneceu suporte razoável durante a elaboração 
ao livro. 


Paul Hoffman 




SUMÁRIO 


strodução XI 

? aRTE I SEU COMPUTADOR MSX 

Capítulo 1 Descrição de um computador MSX 3 

Introduz as diversas partes e características que fazem o computador MSX mais versátil 
que muitos computadores pessoais. 

Capítulo 2 0 que é possível realizar com um computador MSX 8 

Apresenta os tipos de programas que podem ser adquiridos para tornar o computador 
MSX mais útil. 

Capítulo 3 Expandindo o seu computador MSX 22 

Descreve o hardware que pode sei acrescentado ao seu computador MSX para trans- 
formá-lo em um sistema poderoso. 

Capítulo 4 Instalando o seu sistema 29 

Ensina como instalar e cuidar do seu computador MSX e seus periféricos. 

PARTE 2 APRENDENDO MSX-BASIC 

Capítulo 5 Introdução ao MSX -BASIC 35 

Apresenta um resumo da linguagem de programação do MSX-BASIC e discute porque 
é interessante programar com MSX-BASIC. 


VII 


VIII 


MSX Guia do Usuário 


Capítulo 6 

Capítulo 7 
Capítulo 8 
Capítulo 9 
Capítulo 10 

Capítulo 11 

Capítulo 12 
Capítulo 13 

Capítulo 14 

Capítulo 15 

Capítulo 16 

PARTE 3 
Capítulo 17 


O seu primeiro programa MSX- BASIC 40 

Mostra os primeiros passos de uma programação e apresenta um programa que mostra 
muitas das características do MSX -BASIC. 

Entendendo um programa MSX-BASIC 49 

Introduz de uma maneira facilmente compreensível os conceitos do MSX-BASIC. 

Variáveis, constantes, funções e aritmética 55 

Aumenta sua habilidade em dominar as características do MSX-BASIC. 

Controle do programa 72 

Mostra como instruir o MSX-BASIC a tomar decisões e responder às suas entradas. 

Inserção via teclado e exibição de texto gj 

Identifica os métodos que permitem ao MSX-BASIC exibir as respostas aos probLemas 
digitados pelo teclado . 

Gráficos n , 

. y o 

Ensina os diversos comandos gráficos, poderosos, que ajudam você na criação de gráficos 
coloridos. 


Mostra como utilizar os poderosos geradores sonoros e musicais do MSX-BASIC 

Outras interfaces ^ 33 

Descreve como utilizar arquivo de dados, controle de jogos e outras extensões interes- 
santes do MSX-BASIC. 

Programando em linguagem Assembly 2 44 

Apresenta instruções avançadas para programadores arrojados que queiram utilizai 
Linguagem Assem bler. 


Auxílios à programação 

Identifica as Características do MSX -BASIC que tornam a programação mais fácil e mais 


eficiente. 


Outros comandos e funções 

Apresenta breves descrições de todos os comandos do MSX-BASIC abordados nos 
capítulos precedentes. 


APRENDENDO MSX-DOS 

Descrição do MSX-DOS 

Apresenta o MSX-DOS aos leitores que tenham acionadores de disco 
tadores MSX. 


com seus compu- 


Sumário 


IX 


-ipítulo 18 

Utilizando o MSX-DOS 

Apresentando Comandos e Arquivos. Ensina como utilirar MSX-DOS com arquivos e 
programas . 

174 

liprulo 19 

Comandos MSX-DOS 

Descreve em detalhes todos os comandos do MSX-DOS. 

198 

? ARTE 4 

APÊNDICES 


Apêndice A 

Referência ao MSX-BASIC 

Um sumário dos comandos e argumentos ao MSX-BASIC 

225 

oêadice B 

Referencia ao MSX-DOS 

Um sumário dos comandos e argumentos ao MSX-DOS 

229 

*jrariãfy C 

Tabela ASCII 

Um diagrama completo dos caracteres e gráficos disponíveis. 

230 

Ajeacfrce D 

0 padrão MSX 

Tabelas detalhadas para programadores avançados . 

237 

■ Tcáce E 

Apresentação do teclado 

Localização de todos os caracteres gráficos no teclado. 

244 

Ajêcáce F 

Porta de entrada e saída 

246 


Analítico 


247 




INTRODUÇÃO 


Este livro será de grande utilidade para todos aqueles que possuam um computador MSX, ou 
rjf estejam pensando em comprar um. Contém informação de como utilizar o computador, de 
ermo programar o computador em MSX-BASIC, e, caso você tenha um acionador de disco, como 
_ '-.tal o MSX-DOS. 

Este livro responde às perguntas feitas por muitos dos usuários do MSX: O que posso fazer 
_r~ ie jogar? É fácil programar em MSX-BASIC? Para que serve o MSX-DOS? 

Apesar de o livro ser escrito cpm a finalidade de tornar compreensível o uso do MSX, 
rmcipalmente pelo usuário primário, ele também contém muita informação útil ao usuário 
. - Caso você tenha ficado confuso com seu manual, este livro o ajudará a compreender 

r _-.cs dos conceitos apresentados. 

O MSX é um padrão para computadores, e a maioria dos computadores MSX se parecem 
s meiam da mesma maneira. Alguns fabricantes adicionaram características aos seus MSX para 
aeri-':» mais interessantes, mas todos aderiram ao padrão de modo que a informação deste 

se aplica a todos os computadores MSX. 


que Você Deve Ler este Livro 

Sei a você um usuário novo do MSX ou um que o tenha utilizado durante muitos anos, 
' : líTi não estar familiarizado com todas as funções do MSX-BASIC e MSX-DOS. Este livro 
fcaecerá uma introdução branda, porém direta, a estas funções. O livro tem ainda diversas outras 
— “.r.eristicas importantes, incluindo: 

- Introdução aos computadores para os iniciantes. No início do livro existem descrições 
:E: ráenicas do que é um computador e como começar a utilizá-lo. Você verá que quanto mais 
jr-er 3 respeito da operação de seu computador MSX, maior utilidade ele terá para você. Os 
Tac irEos 1 e 4 são dedicados a estes itens. 


XI 


XII 


M$X Guia do Usuátio 


E T m f nten * S ^ Ú,eis *" P-— « 

r:r o/MSX ac =^ 

cutidoí cmmndos d ° *. <*. 

entie comandos, São fornecidos Droerairi'!i^ Ue ^ P 0 * 1 ™ 1 determinar com rapidez a relação 
MSX-BASIC é abordado do Capítulo 5 ao 16. exem P llflcam 0 aic “ce destes comandos. 0 

confusos sXeTS ZnI D0S - 05 *“ feam 

que abarca todos os conceitos existentes no MSX nnTn™h ”” j apitul ° bastante extenso 

ss^rsü: 

padrão MSX. iscussao a respeito dos aspectos técnicos do 


A Origem do Material deste Livro 

muitosTo” O MSxTmraóftlrr 6 T ’ é “ em P3drSeS astab “hí 
uma das maiores emptesás de softwa e computadores peia Microsoft Corpotaíion, 

do MSX r 

MSX.DOS é ítZi“ma q™s DoTaT^ “7 = 6 ^ “® d ° IBM ^ 0 
é adaptado diretamente de um livro também publicado ^ 

(1984): ThC ° Sb °™/ tkG ™’-™ User, Guide, de Paul Hoffman e Tamara Nikoloff 

BAS^doV^esu Z r‘ ém mai0 ' es de,aU,eS SOble - 

MSX-BASIC é The MBASIC Hanãbook de Wa^e^ ° apr “ 1< !‘ Zado a respdt0 d ° 

os programas deste livro foram rigorosaménte testados em um compmate MSX^ ^ 

É claro que qualquer informação que seja diferente rt mcy a i 




CAPITULO 

1 


DESCRIÇÃO DE UM COMPUTADOR MSX 


Mesmo que você não tenha conhecimento algum sobre o que existe dentro do computador 
ou como ele opera, é fácil jogai e realizai diversas tarefas com o computador MSX. Entretanto, 
você verá que é muito mais fácil fazer o que você quer se entender um pouco sobre o funciona- 
mento dos computadores MSX. 

Neste capítulo são descritas algumas das partes essenciais de seu computador MSX, sem 
entrai em detalhes técnicos. Ao terminar este capítulo, você terá uma boa noção sobre o que 
existe dentio do computador e como ele processa um programa. 

Uma vez que o computador MSX tem características similares às de diversos outros compu- 
tadores, domésticos e comerciais, este capítulo lhe daiã informações sobre computadores em 
geral, utilizando o computador MSX como um exemplo específico. Como já fora mencionado 
na introdução deste livro, todos os computadores MSX têm muito em comum, mas apresentam 
também diferenças nas características e na aparência. Este livro descreve os computadores MSX 
em geral, e não uma determinada marca ou modelo. 

Partes de um Computador 

Um computador tem dois componentes básicos: hardware e software. Simplificadamente, 
hardware é o nome dado à parte física do computador, enquanto software é o nome dado ao 
conjunto de programas processados pelo computador 

HARDWARE 

Muitas pessoas têm receio de nunca entender os computadores, porque não entendem 
eletrônica. Este temor não se justifica e equipara-se àquele de não saber cozinhar por nada 
entender sobre química orgânica. Na realidade, um conhecimento sobre eletrônica em nada 
ajuda quando você aprende os princípios básicos dos computadores MSX. 


3 


4 


MSX Guia do Usuário 


Quando voce retira o computador da caixa pela primeira vez, observará que muitas partes 
se assemelham a outros objetos com os quais já está familiarizado. A Figura 1 1 mostra um 
computador MSX típico (neste caso, um Yamaha CX5M). A parte principal da” me 7 

deZntas”’ ° teCh ' SC assemelha muit0 aos £eckdos da nKiio ™ das máquinas de escrever 

Proxuno ao teclado existem quatro teclas grandes com setas apontando para cima para 
aixo, para a esquerda e para a direita. São conhecidas por techs de controle do cursor iá oue 
sao utilizadas para movimentar o cursor pela tela. (O cursor identifica o local, na tela em que 
ira aparecei o próximo caractere que for teclado. É descrito no Capítulo 6.) Existem ainda 
teclas que apresentam identificação do tipo F1 ou F2, denominadas techs de função, assim 

como teclas com identificação do tipo HOME ou INS. Estas teelas são utilizadas ao ser proces- 
sado um programa. v 

Ao lado ou atras do computador, existem diversos conectores para a ligação de cabos 
Parecem-se com alguns dos plugues encontrados na parte traseira dos equipamentos de som ou 
e eyisores, Nos computadores, estes plugues são muitas vezes chamados portas. Provavelmente 
e>aste uma chave liga/ desliga, que sem dúvida liga e desliga o computador. Muitos computadores 
MSX são acompanhados dos cabos que se ligam às portas do computador. 



Figura 1.1 Um computador MSX típico ; o computador musical CX5M da Yamaha. 


Alguns computadores MSX apresentam luzes de indicação próximas ao teclado, normal- 
mente perto das teclas CAPSLOCK ou da chave liga/desliga. Estas luzes são semelhantes aos 
indicadores de um estéreo: informam quando alguma coisa está “ligada”. 

Algumas das outras partes que você vê podem não ser familiares, mas operam de um modo 
fácil de se entender. Em todo computador MSX existe um local para inserção de um cartucho 
normalmente na parte superior do computador acima do teclado, Consiste em um retângulo de’ 
19 cm x 1,5 cm, que pode estar coberto por uma tampa com dobradiça. Como o nome jã está 


Descrição de um computador MSX 


5 


dizendo, é o local em que são inseridos os cartuchos. Muitos computadores MSX têm local para 
colocação de dois cartuchos. Poderão vir junto com o computador um ou mais cartuchos contendo 
programas, ou você poderá comprar cartuchos para aumentar a utilidade de seu computador MSX. 
O cartucho é inserido da mesma forma que uma fita cassete é colocada em um toca-fitas. Você 
‘‘processa” os programas residentes no cartucho da mesma forma que você toca música gravada 
em um cassete. 

Seu computador MSX poderá vir acompanhado de um monitor, que se parece com uma 
tela de televisão. Se você não recebê-lo com seu sistema, será necessário ligar o computador em 
um monitor ou um aparelho normal de tevê para que você possa ser aquilo que estiver teclando 
ou a “saída” dos programas à medida em que são processados. O procedimento para esta mon- 
tagem é descrito no manual do usuário e é discutido também no Capítulo 4 deste livro. 

Seu computador poderá vir acompanhado por outros componentes de hardware que você 
liga ao computador. São denominados periféricos e poderão estar ligados ao computador. 
Alguns periféricos comuns são manipuladores para jogos, impressoras e acionadores de discos. 
Estes e outros periféricos são descritos no Capítulo 3, e os periféricos específicos de seu compu- 
tador são descritos no manual que o acompanha. 

O termo hardware também engloba a eletrônica dentro de seu computador. Mais adiante, 
neste capítulo, você aprenderá mais sobre o tipo de hardware que existe dentro do MSX e um 
pouco do seu funcionamento (repetindo, não haverá necessidade de conhecimento sobre eletrô- 
nica). Porém, você nunca terá de se preocupar com o hardware dentro de seu computador, uma 
vez que nunca o verá nem o tocará. Toda a interação com o hardware de seu computador MSX 
é feita através de componentes externos, especialmente o teclado. 


SOFTWARE 

A descrição do software é muito mais difícil do que a descrição do hardware, já que você 
não pode tocar ou ver estes programas em seu computador. Um programa é o conjunto de ins- 
truções que dizem ao computador o que fazer. Os termos '‘programas” e "software” são utiliza- 
dos, com freqüêncía, indistintamente, sendo que algumas vezes software refere-se a um conjunto 
de programas. Também existem diversos tipos de software: aquele que controla seu computador 
é bastante complexo, mas alguns outros são tão simples que você pode aprender a escrevê-los 
em alguns minutos. 0 nível de dificuldade depende da dificuldade da tarefa que estiver sendo 
programada, 

Algum software pode ser "aprendido” pela leitura de programas escritos em uma linguagem 
de programação. Por exemplo, muitas listagens de programação em MSX-BASIC aparecem na 
parte 2 deste livro. Você pode teclar estes programas no computador, mas assim que o software 
estiver dentro do computador transforma-se em pequenos pulsos elétricos que não podem ser 
vistos, mas são compreendidos apenas pelo computador. 

Seu computador MSX vem com dois elementos de software dentro dele: o sistema opera- 
cional e o MSX-BASIC. 0 sistema operacional controla o hardware de seu computador e toma 
simples a tarefa de processar outros programas no computador. Não se preocupe em entender 
o sistema operacional do MSX, já que os únicos que precisam conhecê-lo são aqueles que estão 
escrevendo programas complexos. 


6 


MSX Guia do Usuário 


O sistema operacional e o MSX-BASIC estão armazenados dentro do computador em 
circuitos integrados, denominados ROM. ROM significa “Ready Only Memory” (Memória 
Apenas de Leitura), que representa uma maneira estranha de informar que os programas nos 
integrados são permanentes e nao podem ser alterados. Se você comprar software em cartuchos, 
como os jogos ou um software comercial, vera que estes também são armazenados em integra- 
dos ROM. - _ * 

À medida que você aprende o BASIC-MSX, fará seus próprios programas. É claro que 
você poderá guardar os programas que escreve de modo que não seja necessário reescrevê-los 
cada vez que ligar o computador. Mais adiante verá como armazenar programas em fita (utili- 
zando um gravador cassete) ou em disco (utilizando o acionador de disco). 

Alguns fornecedores incluem software adicional com seus computadores. Poderá ser 
software para jogos, para atividades comerciais, educacionais, ou outro tipo de software espe- 
cífico àquela máquina em particular. Este software freqüentemente vem em um cartucho, mas 
às vezes está incluído dentro do computador em uma ROM ou em fita cassete. 


Deritro de seu Computador 

Agora que você conhece um pouco sobre hardware e software, está pronto para conhecer 
a parte interna de seu computador MSX. Como já foi dito, todos os computadores MSX têm 
características similares, e com freqüência sao muito semelhantes. A discussão que segue diz 
respeito aos integrados internos comuns a todo computador MSX. 

Você já viu que a unidade principal inclui o teclado, local para inserção de cartucho(s) 
e diversos plugues para outras partes de seu computador. Apesar de não sei possível abrir o 
computador, você deve saber que existem diversas coisas dentro da unidade principal que 
afetam os programas que são processados e outros itens de hardware que são comprados. 

Como deve ser de seu conhecimento, os computadores são formados por “integrados” 
interligados de modo a permitir a passagem de um sinal eletrônico entre eles. A maior parte destes 
integrados existentes no MSX não são interessantes, mas alguns são bem importantes. Felizmente, 
os que são importantes são fáceis de serem descritos. Todo computador MSX tem o seguinte 
hardware em seu interior: 

' Uma UPC Z-80A (unidade de processamento central). Todo computador tem uma UPC, 
que é seu “cérebro”. O “Z-80A” é o tipo de UPC que existe no computador MSX; outros 
tipos, comuns em outros computadores, são “6502”, “8088” e “68000”. A UPC do MSX 
pode processar 3.58 milhões de instruções por segundo, mais rápido que muitos outros 
computadores pessoais. 

• Memória RAM. Anteriormente você leu a respeito da ROM, que armazena o sistema 
operacional do MSX e o MSX-BASIC. Não é possível escrever na ROM; não é possível 
alterar o conteúdo da ROM, de tal modo que ela não tem utilidade nos programas que 
podem ter suas informações ou instruções alteradas ou acrescentadas. Por outro lado, a 
RAM é uma memória de uso geral, uma vez que ela pode ser lida (processar o programa) 
e escrita (modificada). Porém, qualquer informação que estiver armazenada em uma 
RAM é “esquecida” quando você desliga o computador. 


Descrição de um computador MSX 


7 


Quanto mais RAM tiver, maior poderá ser seu programa. Seu computador prova- 
velmente tem “16K RAM”, “32K RAM”, ou “64K RAM”. O “K” representa 1024 
unidades de memória, de modo que quanto mais “K” você tiver, mais memória terá. 

* Integrados especiais para gráficos. As imagens geradas pelo seu computador são contro- 
ladas por um integrado especial. Isto permite que a UPC ocupe uma maior parte do 
tempo “pensando” a respeito de seu programa. Com um integrado específico para a 
geração de gráficos o seu programa pode ser processado mais rapidamente. 

* Integrado especial para geração de sons. Assim como o integrado para geração de grá- 
ficos, o integrado para geração de sons também é bem avançado; permite ao seu compu- 
tador gerar facilmente sons complexos. 

A maioria dos demais integrados existente na unidade principal do computador apenas ajuda 
aqueles listados, na execução de suas tarefas. 


MSX DOS 

Alguns computadores MSX vêm acompanhados com os acionadorès. de disco, enquanto 
outros têm acionadorès que podem ser comprados separadamente. As vantagens de possuir 
um adonador de disco são: maior rapidez no armazenamento dos programas; maior espaço 
para o armazenamento dos programas, e um acesso mais rápido dos dados, para programas comer- 
ciais ou educadonais. 

Para que seja possível utilizar um acionador de disco, você deve ter também o MSX-DOS. 
Este normalmente é fornecido com os adonadores de disco projetados para os computadores 
MSX. O programa MSX-DOS vem em disco e é colocado no acionador de disco. O MSX-DOS 
é discutido dos Capítulos 17 ao 19. 

Para que seja possível utilizar o MSX-DOS, você deverá ter 64K de RAM. Isto se deve ao 
fato de que o MSX-DOS, como outros programas, exige uma certa quantidade de memória para 
seu funcionamento. Você não pode utilizar o MSX-DOS em um computador que tenha menos 
do que 64K de RAM. Se o computador não tiver a quantidade suficiente de RAM, você poderá 
expandir a quantidade de RAM através da aquisição de cartuchos adicionais de RAM (veja no 
Capítulo 3). 

Para utilizar o MSX-DOS, você deverá ainda interligai o acionador de disco ao seu compu- 
tador. (Você bem que pode imaginar a dificuldade de sua utilização caso não estivesse conectado.) 
Entretanto, isto pode apresentar um problema já que a maioria dos acionadorès de disco é 
conectada pelo conector de inserção do cartucho. Se você tiver apenas um conector de inserção, 
não será possível ligai um acionador de disco e um outro cartucho. Muitos computadores MSX 
têm mais do que um conector ou têm caixas para expansão que permitem a expansão do número 
de conectores. 



CAPITULO 

2 


O QUE É POSSÍVEL REALIZAR 
COM UM COMPUTADOR MSX 



Este capítulo é um guia para os tipos de programas que você pode comprar para o seu 
computador MSX. Descreve, de um modo generalizado, o alcance do software disponível e o que 

Tentei T r praBram,B - ^ <V» Programas novos são escritos diaria- 

mente e os antigos estão constantemente sendo melhorados, listamos aqui apenas alguns 

hs2^ eSpeClflCOS ' revístas sobre comutadores domésticos você poderó encoiúrar 

dlSpon,veis - furnas das grandes empresas distribuidoras de software 
como Lifeboat, tem muitos produtos de software para o MSX. 


Uma Visão do Software do MSX 

VKY * paríe d ° software do Msx vem em cartuchos, uma vez que todo computador 

Pa r a ? Um CartUCho - 08 Cartuchos sí0 maneira be ™ con- 

vemente de distribuir o software uma vez que são difíceis de danificar e muito difíceis de serem 

Zos flex7vd S P,r ^ fabrÍCanteS de Software dlstribliem programas em cassete ou em 

_ t A ° COmprar ™ software esteja seguro de que você possa utilizá-lo. Por exemplo se você 
nao tiver um gravador cassete associado ao seu computador MSX, não compre um programa 
azenado em cassete. Caso tenha um acíonador de disco, poderá comprar software em 

disquete. Assegure-se de que o software é compatível com seu acionador de disco- que os dis- 

rer^ir den? ^ d ° S í° m SeU m ° del ° 6 tamímho de acionador - Quando eristír dúvida 
pergunte ao vendedor de software. ’ 

O MSX ê de utilização tanto doméstica como educacional e comercial, e o software disno- 

eS ' a dlSlm f 0 ' Por exem Pl°. existem, disponíveis, diversos programas para proces- 
samento de palavras; alguns sao apropriados para utilização caseira - datilografia de Lefas 

ter^ basTT 1 ^ ° U PT °>' t0S eSpeCiais “ “«““'O 0Mr “ incluem 

teristicas bastante poderosas e necessárias em um escritório ou escola. É claro que você pode 

8 


O que é possível realizar com um computador MSX 


9 


utilizar o programa onde desejar, mas antes de fazer a compra convém perguntar sobre a finalidade 
a que se destina, 

Uma vez que o computador MSX é popular no Japão e na Europa, a mais tempo do que 
está disponível nos Estados Unidos, uma parte do software de qualidade do MSX foi convertido 
ao mercado americano. Entretanto, o sistema operacional do MSX é similar ao sistema operacional 
CP/M, e muitos programas americanos em CP/M foram convertidos para serem processados no 
MSX. À medida que os computadores MSX se tomam mais populares nos Estados Unidos, veremos 
aumentar o software ali escrito para o MSX. 


Jogos 

A utilização doméstica mais popular do computador MSX são os jogos. Existem dezenas 
(ou centenas) de jogos disponíveis para os computadores MSX, a maioria em cartuchos. 

A maioria dos jogos do MSX pode ser classificada na categoria dos jogos arcádicos (de 
fliperama) ou de raciocínio. Muitas pessoas não gostam dos jogos tipo fliperama, em virtude de 
sua violência e natureza repetitiva. Entretanto, é fácil evitar aqueles jogos de “atire-neles” (ou 
“coma-os”); se você não se sentir atraído pelos jogos arcádicos, pode ser que ainda encontre 
interesse em algum jogo de raciocínio. 

Caso você não tenha conhecimento sobre os jogos de ação de computadores, leve em 
conta as seguintes considerações: 

• Não julge um jogo pela embalagem. A arte executada na embalagem pode ser bonita, 
mas lembre-se de que é mais barato fazer uma embalagem bonita do que um jogo interes- 
sante. É mais caro conseguir um bom programador do que conseguir um bom desenhista. 

• Não espere mais do que já viu nos fliperamas (de fato, provavelmente deverá esperai 
bem menos). Caso não goste de nenhum dos jogos de fliperama, certamente não irá 
gostar dos jogos arcádicos disponíveis para os computadores MSX. Muitos dos jogos 
arcádicos do MSX são cópias conceituais dos jogos de fliperama. 

• Pense em acrescentar um joystick ao seu computador. O joystick é um periférico que 
controla determinadas ações da tela. Normalmente, apertamos os botões do joystick 
para movimentar objetos ou executar uma ação. Muitos dos jogos arcádicos que requerem 
agilidade ou velocidade são extremamente difíceis de se jogar sem um controlador de 
jogos. A movimentação de objetos pela tela utilizando as teclas de controle do cursor 
em vez de um controlador pode-se tomar muito difícil nestes jogos. 

• Experimente o jogo antes de comprá-lo. Lembramos, porém, que na maioria das lojas 
de computadores você não terá permissão para jogar, na loja. 


JOGOS ARCÁDICOS (FLIPERAMA) 

A maioria dos jogos arcádicos processados no MSX não é muito interesante, mas é popular. 
Alguns jogos do tipo arcádíco para o MSX são “Mouser” (animais perspicazes e escadas), “Car 
Jaraboree” (uma corrida de automóvel com muitos elementos de demolição), “Pitfall!” (cor- 


10 


MSX Guia do Usuário 


rida na selva), “Keystone Kapers” (policiais e ladrões), “Hyper Olympics” (simulação esportiva), 
e “Sparkie” (um jogo alegre em um labirinto). 

Muitos jogos populares nos fliperamas foram convertidos para utilização doméstica, com 
muitos títulos disponíveis aos computadores MSX. Esportes (como baseball, golfe e tênis) são 
outros tópicos muito populares para os jogos do MSX, mas, raramente os jogos esportivos de 
vídeo são tão interessantes como os jogos esportivos em si. 

Alguns jogos de habilidade são também ferramentas de aprendizado muito bons. A simu- 
lação de vôo faz você monitorar os diversos discos e luzes típicos de uma pequena nave e responder 
utilizando controles similares aos de um avião real. Voce não marca pontos, como normalmente 
ocorre com um jogo; em vez disto o objeto tem de decolar e aterrar sem que haja um acidente. 

JOGOS DE RACIOCÍNIO 

É difícil comparar os jogos de raciocínio com alguma coisa familiar. Alguns são descritos 
como “ficção interativa”, enquanto outros são “Jogos de aprendizado”. Parecem-se com histórias 
que você ajuda a criar, porque você descreve para onde deve ir o personagem principal e o que 
ele deve fazer. 

Os jogos não-arcádicos mais interessantes são os de aventura, onde você resolve mistérios 
e encontra tesouros pela utilização de palavras que permitem a sua movimentação por um certo 
ambiente. Por exemplo, se o programa informa que você está nas proximidades de uma caverna 
e, através do teclado, você lhe diz que quer entrar na caverna, o programa lhe informa o que 
encontrará lá dentro. Você poderá fazer diversas coisas (achar tesouros, matar dragões etc.), mas 
a finalidade do jogo é solucionar um mistério ou alcançar um objetivo. 

No mundo dos jogos de aventura, os jogos da Infocom são considerados o$ mais interes- 
santes (incluem a série “Zork”, “Planetfall” e “The Hitchhikefs Guide to the Galaxy”). Os 
cenários variam desde a fantasia do dragão e calabouço, ficção científica e historias detetivescas 
comuns. Os jogos Infocom são conhecidos pelo humor e pela intriga. Sua interação com o jogo 
é bastante realista uma vez que lhe é permitido fazer perguntas e fornecer listas de ordens, em 
inglês. 

Os jogos Infocom fornecem um texto na tela, descrevendo o ambiente em que você se 
encontra. Existem outros jogos de aventura que apresentam uma imagem para cada ambiente. 
Por exemplo, se você estiver sentado em uma sala vitoriana, veria uma imagem desta sala; e se 
um morcego entrasse voando pela janela da sala, o morcego apareceria na tela. 

Outros jogos de raciocínio disponíveis para o MSX incluem conversões de jogos populares 
de tabuleiro. Por exemplo, existem versões MSX de Otheílo, gamão e mah-jongg. Estão dispo- 
níveis ainda programas de jogos de cartas e de xadrez. 

Processamento de Palavras 


0 software de processamento de palavras permite que você escreva e armazene qualquer 
tipo de texto — memorandos, cartas, relatórios e livros — e imprima o texto com uma impressora. 
A maioria das pessoas acha que o processamento de palavras é o programa aplicativo mais útil 


O que é possível realizar com um computador MSX 


11 


uma vez que toma o ato de escrever mais simples. Depois de você utilizá-lo, verá que o proces- 
samento de palavras é uma ferramenta muito valiosa. Mesmo que o computador tenha sido 
adquirido com outra finalidade deve ter um bom processador de palavras 

A medida que os programas de processamento de palavra se tomam mais comuns, maior 
número de pessoas está sentindo a diferença entre utilizar um processador de palavras e «ma 
máquina de escrever. A revisão de texto, com um processador de palavras, é muito simpies; a 
reestruturação de uma carta ou nota é rápida, e guardar o texto no disco ou cassete do compu- 
tador Significa que você nunca precisará refazer a datilografia. 


MANUAL DO PROCESSADOR DE PALAVRAS 

Você deve ter a facilidade para ima gin ar um programa que mostra na tela os caracteres 
digitados à medida que estiverem sendo teclados. Com exceção da tela, o programa se comporta 
como uma máquina de escrever comum. Você pode imaginar também que à proporção que você 
tecla os caracteres, o programa armazena-os em disco ou fita; posteriormente pode ser dado um 
comando para imprimir estes caracteres com uma impressora. Até aqui, esta descrição coincide com 
uma máquina de escrever de memória: uma vez teclado, é sempre possível imprimir. 

A semelhança termina quando você quiser alterar o que foi teclado. Com um processador 
de palavras é simples incluir ou excluir palavras, sentenças e parágrafos. É possível movimentar 
sentenças e parágrafos pelo texto que foi criado. Ao fazer estas alterações, o programa permite 
que você faça a edição do texto armazenado. Outra característica do processador de palavras 
é que ele permite que se dê um determinado formato ao documento (numeração automática 
de página, parágrafos, itálicos) quando estiver sendo impresso em papel. 

Você fornece ao programa de processamento de palavras comandos que o informam o que 
fazer e quando. Com a maioria dos programas, você deve utilizar uma combinação de teclas para 
dar estes comandos (como movimentação para frente ou para trás no texto, para deletar, para 
inserir, e assim por diante). Os computadores MSX têm teclas especiais no teclado que tomam 
mais fácil o processamento de palavras. 

Ao utilizar um processador de palavras você começa por informar ao programa qual é o 
texto existente no disco, ou no disquete, que deve ser editado, ou se deseja iniciar um novo texto. 
As cartas, capítulos ou artigos são guardados em arquivos, descritos com detalhes no Capítulo 18. 
Se estiver utilizando um arquivo novo, informe ao programa que deseja escrever um texto e 
comece a digitar. Se estiver editando um texto já escrito, informe ao programa o nome do arquivo 
que deve ser editado e onde está o texto (como, a primeira linha ou a segunda sentença no quarto 
parágrafo). Assim que o programa o posicionar, poderá fazer suas alterações. De fato, você se 
movimenta pelo arquivo todo desta maneira; alterando ou acrescentando texto. Uma das carac- 
terísticas interessantes da edição é que você pode movimentar-se para frente e para trás pelo 
arquivo; não é obrigado a ir sempre do começo ao fim. 

Quando terminar de editar, ou criar um arquivo, você informará ao programa para gravar 
o arquivo novo (com todas as alterações) em um disco ou cassete. Se quiser, poderá, também, 
imprimir este arquivo novo. Após ter utilizado o programa de processamento de palavras para 
fazer edição de texto, provavelmente nunca voltará a utilizar uma máquina de escrever. 



12 


MSX Guia do Usuário 


Geralmente, quanto mais potente é o processador de palavras, mais você consegue fazer 
com seus comandos de formatação Existem diversos tipos de comandos de formatação Alguns 
permitem que se faça coisas simples, típicas (como a colocação das margens esquerda e direita 
numeraçao de paginas, ou marcação de um parágrafo), e há outros mais sofisticados que podem' 
por exemplo, fazer tarefas como ajustar automaticamente listas, centralizar títulos de capítulos' 
co ocar um cabeçalho no topo de cada página, ou sublinhar automaticamente um grupo de 
palavras. A Figura 2.1 ilustra diversas destas características do processamento de palavras. 


O QUE OBSERVAR EM UM PROCESSADOR DE PALAVRAS 


Os programas de processamento de palavras estão disponíveis em uma faixa muito grande 
de preços Por mais estranho que possa parecer, não podemos assumir que um pacote de proces- 
samento de palavras mais caro seja mais fácil de utilizar e tenha mais facilidades do que uma 
versão mais barata. Certos processadores de palavras mais baratos têm mais opções que alguns 
mais caros. Os cntenos mais importantes sao, em primeiro lugar, se um pacote é fácü de aprender 
a utilizar, e em segundo lugar, se o número de facilidades é suficiente para as suas necessidades. 


0 que segue sao algumas considerações que devem ser feitas quando você começa 
pelo melhor programa: 


a procurar 


Qual é a facilidade de dar entrada,, alterar, formatar e imprimir o texto? Você provavel- 
mente vai querei evitar programas que exijam a memorização de seqüências complicadas 
para a teclagem dos comandos de edição. Esta verdade é mais acentuada quando você 
utiliza processamento de palavras apenas em casa. 


0 processador de palavras pode operar com sua impressora? Algumas impressoras podem 
alterar o estilo de impressão (denominado fonte, utilizar espaçamento proporcional 
ou criar sobrescritos e subscritos. Entretanto, você poderá utilizar estas características 
apenas se seu processador de palavras foi configurado para o tipo de impressora que 
voce tem. Em caso afirmativo, isto significa que a impressora tem condição de executar 
os efeitos solicitados pelo programa do processador de palavras. Fazemos este lembrete 
porque a maioria dos processadores de palavras é configurada apenas para algumas im- 
pressoras; se aquele que você comprar não for configurável para sua impressora, não será 
possível utilizar as características especiais do programa. 


P t a caxactenstlca de elaboração de uma listagem para endereçamento 

postal? Muitos programas permitem que você junte um arquivo com endereçamentos 

^ ’ fOnnaild0 cartas 'P adrões P ela inserção de nome e endereço no topo 


- O programa tem características para usuários antigos? Muitas pessoas que utilizam o 
processador de palavras regularmente tomam-se hábeis com o programa. Muitos pacotes 
em caracterisücas avançadas que, apesar de serem complicadas para iniciantes, fornecem 
mais flexibilidade aos veteranos. Por exemplo, alguns programas permitem que você 

solicite a execução de diversos comandos diferentes um após o outro, sem solicitação 
adicional de sua parte. «wmyuu 


O que é possível realizar com um computador MSX 13 


CABEÇALHO 


THE USX BOOK 


SUBLINHAR 


KS5EHT1AL WORD- PBOCESSI NG FEATURES 


CENTRALIZAÇÃO 

AUTOMÁTICA 


f 


Any word-proeessing program that you buy should be able lo 
do the foilowing. editing, formatting, and printing functions: 


MARGEM 

VARIÁVEL Ed i t Ing 


TEXTO EM 
NEGRITO 



Every wo rd-process ing program will lei you insert or delete 
characters, words, lines, and block-s of text. It will iet 
you move text from onç j>grt of lhe mânuScript to anoUier, 
indieate page breaks, and center headíngs. Other necessary 
features include the ability to move the cursor to any 
Location on the screen and word wrap. (With word wrap you 
don’t have to hit the RETURN key~at the end of a line; you ^ 
just keep typing and the word-processing program takes you *] 
to the beginning of the nert line . ) J 

JUSTIFICAR À 

Page-Forisattíng Features MARGEM Dl REITA 

A basic program will allow you to set ieft and right J 
margins and tabs and to justify (straighten) the "ragged"* 
right margin of you text- The program should also bç able 
to hyphenate words at the ends of lines and should let you 
specify the spacing you want. 

Printing Features 

Necessary features include automatic page numbering and the 
ability to print in boidface and to underscore text. You 
should be able to start numbering pages with âny designated *«. 
nuraber and to bypass the fçaturç íf you don't want to 
number pages. \ 


ADVANCED FEATURES 


ESPAÇAMENTO 
VARIÁVEL 


TABULAÇÃO 

If your business generstes a iarge volume of correspondence 
and reports, you will probably want a wo rd -pr oo e s s i ng program 
that includes some of the foilowing advaneçd features: 







NUMERAÇÃO DE PAGINA 
AUTOMÃTI CA 


Figura 2.1 Algumas características do processamento de palavras. 


14 


i 

MSX Guia do Usuário 


Qua! é a facilidade de aprendizagem? Alguns programas vêm acompanhados por uma 
documentação farta, menus de auxílio na tela, gabaritos ou cartões que o auxiliem a 
aprender rapidamente o sistema. Outros programas tém documentação deficiente, tecla- 

gens estranhas para os comandos e outras características que impedem seu conforto 
com o programa. 

Alguns pacotes de processamento de palavras incluem programas de verificação de escrita. 
Um verificador de escnta examina cada palavra em seu arquivo de texto, procura-a em seu 
dicionário, e lhe informa qual é que não reconhece. Em seguida permite que vocé decida se a 
palavra foi escrita de maneira errada, ou se o programa não está familiarizado com a palavra 
(por exemplo, siglas ou nomes próprios). Como você pode imaginar, todo arquivo poderá ter 
diversas palavras que náo estão no dicionário do programa; assim, é espccialmente importante 

a obtenção de um programa de verificação de escrita que permita uma atualização fácil do 
dicionário. 

C.rande parte dos pacotes de processamento de palavras do MSX é para uso comercial 
existindo porém, pacotes para uso doméstico. Estes são normalmente mais fáceis dc ser usados 
já que contem menor número de características do que os pacotes comerciais. Com frequência 
vocc pode aprender a utilizar um sistema de processamento de palavras doméstico em menos 
de uma hora. 0 sistema, usualmente, utiliza-se das possibilidades gráficas e sonoras do MSX com 
maior vantagem que os sistemas de processamento de palavras comerciais. Por exemplo, o pro- 
grama Bank Street Wnter. que acompanha o computador MSX da Toshiba, é um pacote de 
processamento de palavras popular e fácil de usar. 


Telecomunicações 

Um acréscimo popular de hardware aos computadores MSX é um modem. Um modem 
permite que você se comunique com outros computadores pela linha telefônica. Também 
pcnnite que voce utilize um grande número de serviços de informação (como grandes bancos 
de dados e grupos de usuários) disponíveis nos computadores de outras pessoas. 

Como um modem opera? O procedimento é realmente simples. Com os modens,’ as linhas 
telelomcas se transformam em cabos longos entre computadores. Da mesma maneira que seu 
computador envia caracteres a sua impressora por um cabo, um modem envia caracteres por 
uma linha telefônica a um outro modem em outro computador, fnfelizmentc, a maioria dos 
modens nao permite que vocé se comunique com rapidez. Com freqüéncia, transmitem 30 
caracteres por segundo (300 baud) ou 120 caracteres por segundo (1200 baud). 

Sera necessário mais do que o modem para transferência de dados com outro computador 
é indispensável também um software de comunicação que informe ao modem como enviar a 
informação. Estas são as tarefas que o software de comunicação pode executar: 

O programa de comunicação liga seu terminal diretamente ao outro computador. A 
isto denominamos emulação do terminal. Por exemplo, se vocé se interligar com um 
computador tipo “mainframe o software de comunicação enviará todo caractere que 
vocé digitar a outro computador e imprimirá todo caractere que o outro computador 


O que é possível realizar com um computador MSX 


15 


colocar em sua tela. Existem diversas empresas que pejmitem que você acesse informa- 
ções existente em seu “mainframe”, se você tiver um modem e um programa de 
comunicação. 

— O programa de comunicação permite que você envie arquivos de texto entre compu- 
tadores. Por exemplo, você pode enviar um relatório para alguém que tenha um compu- 
tador e um modem; seu programa de comunicação envia o arquivo pela linha telefônica. 
Enviar um arquivo de texto com um programa de comunicação é mais rápido e mais 
seguro do que redatilografar o arquivo e enviá-lo pelo correio. 

- Alguns programas permitem que você envie programas pela linha telefônica. Para que 
isto seja possível, os dois elementos têm de processar o mesmo programa de comunicação 
ou ter dois programas que utilizam o mesmo método para transmitir e receber arquivos 
de programas. Uma vez que os programas são como arquivos que têm caracteres especiais, 
a maioria dos programas de comunicação, que permite que você envie e receba arquivos 
do texto, permite que você envie e receba programas. 

— Alguns modens discam para você. A discagem automática necessita de um software 
para fornecer os comandos corretos. Muitos dos programas de comunicação permitem 
um armazenamento interno de números telefônicos de maneira que o, programa faz a 
discagem. Com isto a utilização do modem fica mais fácil; basta ordenar ao programa 
de comunicação que disque para um determinado computador. 

Quase todos os programas de comunicação podem executar a emulação de um termina] 
e transferência de arquivos de texto, e grande parte pode executar transferência de programas 
e discagem automática. 

As outras características que você deve levar em conta em um software de comunicação 
são a facilidade de utilização (a maioria é bem simples) e a compatibilidade com outros progra- 
mas. Infelizmente, a última é difícil de ser determinada. Você deverá saber qual é o protocolo 
de comunicação (o método que os computadores utilizam para ter certeza de que os dados foram 
enviados corretamente) utilizado pelos computadores com que você se comunica, porque seu 
programa de comunicação deverá utilizar o mesmo protocolo. Você não precisa saber o que é 
que o protocolo faz, mas apenas seu nome. Dois dos protocolos mais comuns são o XON/XOFF 
(pronuncia-se ex-on-ex-off), também conhecido como “Control-Q/Control-S”, e o MODEM7, 
um protocolo utilizado quase que exclusivamente por microcomputadores. 


Planilhas 

Os programas de planilhas levam grande parte do crédito pela popularidade dos micros 
em pequenos negócios. Antes do lançamento do VisiCalc pela VisiCorp, os computadores, pes- 
soais eram utilizados pelas empresas para processar software de processamento de palavras e 
de contabilização. 0 microcomputador tomou-se uma ferramenta muito mais viável para as 
empresas quando foi desenvolvido um programa que modelava o crescimento da empresa: analisava 
a projeção de vendas versus o registro de despesas. Isto fez o computador executar funções 
normalmente feitas por meio de gráficos pela contabilidade. 


16 


MSX Guia do Usuário 


1 

2 

3 

4 

5 

6 

7 

8 
9 

10 

n 

12 

13 

14 


Hardware 

cridas 


Softwa re 

vendai 


Renda 


Rendim. 

total 


1981 


1 10201 


48270 


1982 


124933 


65391 


158471 


190324 


D 

1983 


121640 


86922 


15900 


224462 


1984 


145283 


94280 


32740 


272303 


1985 

estim, 


148910 


97640 


46000 


292550 


Figura 2.2 Uma tabela, mostrando números c etiquetas. 


tabito Cr encom,aran ’ u,iliza ^ P™ » tabelas no 

no planejamento do imposto de renda e gastos doméstico!" P ° d " n 

pata o MSX. como o MuJtiplan da Microsoft. E programas de tabelas 

cCas “d bem S, 7' K: 3 teU * ^ ™ 

O exemplo de uma tabela deste tipo. As colunas são imrr ri ^ C ° ntador A F, « ura 2 - 2 mostra 
com números. As celas são denominadas pela coluna 3 “ coin etras e 35 hnhas 850 marcadas 
exemplo, o número “1 10201” está na cela B4 nia * em que estão localizadas. Por 

Cada cela poderá conter uma destas três informações: números, equações ou texto 

' anTolme^dt uC™ 1 “T™ 8a " hos «« ™ *P«— »«o durante o 
projeto etc, Estes números são fixos ■ isto é tfoclTnn des P endldas em u ™ 

entrada. Por exemplo, na Fis-ura 2.2 o mim , S dad ° S que vocí uíl,iza 001110 

cruzeiros ganhos em 1981 na venda de hardware^ ^ " 3 B4 repreS€nta ° núm€ro de 

- Sm^r^^reto tr r- Por exempi °' a « ia bi3 - •*» 

O rendimento tota, de 198.. Da mesma manetfaa 

que projetam as vendas para 1985 baseadas no rrw- . contem equações 

AS equações „ 3 o aparecei na “ .— *»• 

cursor para a cela em nuestíín m H , q 0 e 35 ve q ua ndo movimenta o 
e q uaç<£ q SO - ■* 0Ut, ° m0d0 ’ «o Dldi «“ 1 “ apenas os resultados das 


O que i potsível rtaliiar com um computador MSX 


17 


As equações podem utilizar ainda outras funções matemáticas, como multiplicação 
e divisão. Por exemplo, uma cela pode conter uma equação que determina qual foi a 
porcentagem de um determinado departamento para o rendimento de uma empresa. 

- Texto. O texto é utilizado para identificar partes da tabela, lembrando o que os números 
representam; um exemplo é a palavra “Renda” na cela AIO. 

A vantagem nos programas de tabela é que permitem alterai com facilidade os números e 
equações e em seguida ver o resultado. (Estes cálculos são denominados “se-então”.) Por exem- 
plo, você quer saber o que aconteceria se o padrão de vendas, mostrado na Figura 2.2, fosse 
deslocado de maneira a indicar um aumento da renda. Basta mudar os números da coluna 1984 
e verificar como isso afetaria a coluna 1985. Ou poderia alterar as equações utilizadas na coluna 
1985 e ver como se alteram os ganhos projetados. 

Os programas de tabelas têm numerosas aplicações como ferramentas de uso geral para 
modelagem com números. Além de fornecerem uma maneira mais fácil de adivinhar o futuro, 
fornecem também um método sofisticado para rastrear o fluxo de caixa de uma empresa ou 
uma conta bancária individual. Após observar as diversas maneiras de como o dinheiro entra e 
sai de uma empresa, um administrador poderá analisar diversas estratégias para maximizar o 
lucro. Poderá utilizar tabelas para solucionar problemas de engenharia ou para qualquer tarefa 
que necessite de equações. 


Sistema de Gerenciamento de Banco de Dados 

Um sistema de gerenciamento de banco de dados (DBMS) é um programa que organiza 
a informação, extrai informação selecionada, permite o acréscimo de nova informação, e atualiza 
a informação já existente no computador. Nos negócios, um DBMS o ajuda a controlar o inven- 
tário, o livro de contas, nome e endereço de clientes e assim por diante. Em casa, pode auxiliar 
na organização de contas, diversões e outros interesses pessoais. 

Alguns programas de DBMS do MSX são destinados à utilização doméstica e são portanto 
muito simples. Outros são utilizados em empreendimentos comerciais, e as características potentes 
que têm poderão tomar estes programas bem complexos. A seguir alguns dos fundamentos dos 
programas DBMS. 

Um banco de dados é uma coletânea de informações armazenadas em seu computador. Todo 
banco de dados tem uma estrutura, que é o padrão ou formato em que suas informações serão 
armazenadas pelo DBMS. A estrutura define o tipo de informação que você pode armazenar 
(como nomes, endereços, código de peças etc.) e se a informação é texto ou um valor numérico. 
Por exemplo, se você mantém uma base de dados de clientes, a estrutura da base de dados poderá 
assemelhar-se à Tabela 2.1 (este exemplo é utilizado constantemente nesta seção). 

A informação, na estrutura, está contida em campos e registros. Campos são pedaços de 
informação com finalidades específicas no conjunto de dados. Por exemplo, a entrada de um 
nome é um campo, um endereço é um campo etc. A estrutura define as características de 
cada campo. 


18 


MSX Guia do Usuário 


Tabela 2.1 Estrutura de Banco de Dados de um Cliente 


Campo 

Tipo 

Notas 

ID Cliente 

Número 

Sempre 4 dígitos 

Empresa 

Texto 

Máximo de 20 caracteres 

Nome do Contato 

Texto 

Máximo de 25 caracteres 

Endereço 

Texto 

Máximo de 25 caracteres 

Cidade 

Texto 

Máximo de 1 5 caracteres ■ 

Estado 

Texto 

Máximo de 2 caracteres 

CEP 

Número 

Sempre 5 dígitos 

Telefone 

Texto 

Sempre na forma ###-##-## 

Nome representante vendas 

Texto 

Máximo de 25 caracteres 

Balanço 

Número 

Indicado no relatório em cruzeiros 


Um conjunto de campos inter-relacionados é denominado registro, o qual possui um con- 
junto de valores para cada campo. Uma analogia seria um catálogo de cartões de uma biblioteca. 
0 catálogo em si é o conjunto de dados, cada cartão um registro e cada pedaço de informação 
(como o nome do autor ou o título do livro) é um campo. 

A Figura 2.3 mostra um registro de um banco de dados conforme definido na Tabela 2.1. 
Cada campo aparece no registro exatamente uma vez. Você não precisa preencher todos os campos 
de um registro. A Figura 2.4 mostra uma vista esquemática de um banco de dados. Como você 
pode ver, cada registro confere com a organização geral do banco de dados. 


I D Cliente: 4120 
Empresa: CE BI 

Nome do Contato: Oscar Burd 

Endereço: Av. Corifeu de Azevedo Marques, 1 .304 

Cidade: São Paulo 

Estado: SP 

CEP: 05539 

Telefone: 81 5-5669 

Nome representante vendas: Luís 

Balanço: Cr$ 700.000.000 


Figura 2.3 Um registro de um banco de dados de cliente. 


O DBMS armazena seu banco de dados em um arquivo no seu disco ou cassete. 0 DBMS 
é- utilizado para alterar registros ou adicionar novos registros ao banco de dados. Por exemplo, 
suponhamos que o CEBI mudou o número telefônico. Você utilizaria seu DBMS para encontrar o 
registro apropriado para em seguida alterar o número telefônico listado nos arquivos. 


19 


O que é possível realizar com um computador MSX 



ID 

Cliente 

£m presa’ 

Nome 
do Contato 

Endereço 

. . . 


4120 

CEBI 

' Oscar Burd 

Av.C.A.Mqrques, 1304 

••• 


1107 

João & Cia. 

Sandra 

Av. Sumaré, 300 




/ 


Campos 



Figura 2.4 Vista esquemática de um banco de dados. 


É simples alterar e acrescentar registros, porém a razão principal de você utilizar o DBMS 
é a pesquisa da informação de seu banco de dados. Um bom DBMS permite que você veja a 
informação baseado em qualquer critério desejado. Algumas das solicitações que você pode fazer 
para seu DBMS são: 

— Listar todas as empresas que tem CEP iniciando com 902; 

- Fazer etiquetas de endereçamento postal na impressora para todos os clientes do CEBI; 

- Listar todos os clientes devedores, classificando pelo valor devido e demonstrando o total 
devedor; 

— Listar todos os clientes acrescentados ao banco de dados durante o último mês. 

Um DBMS é bem útil para fazer análises imediatas de informação, como o fornecimento 
de totais para quantidades numéricas. Outra tarefa que faz com perfeição é localizai a informação. 
Por exemplo, você pode querer olhar o registro de uma empresa, mas tudo o que lembra a respeito 
dela é que o seu nome inicia com a letra “P” e que está localizada em São Paulo. Seu DBMS 
poderá encontrar os registros que atendam aos dois critérios. 

Você pode imaginar que leve muito tempo para que um DBMS percorra um arquivo de 
dados muito grande, â procura de informação específica. Para acelerar a procura, quase todo 
DBMS existente no mercado utiliza campos com chave. Ao definir uma estrutura, você informa 
ao DBMS qual é o campo que julga utilizar com maior freqiiência para fazer procuras (no exemplo, 
nome da empresa e o local são boas conjecturas). Assim, o DBMS utiliza um campo especial de 
chaves para encontrar, rapidamente, os registros selecionados. 

Agora, você já deve ter imaginado diversas maneiras em que possa utilizar o DBMS. Um 
DBMS avançado, mas complexo, pode levar horas paia ser compreendido, ao passo que um simples 
pode levar apenas alguns minutos. Se comprar um DBMS, esteja certo de estar adquirindo um que 
atenda às suas necessidades (e, é claro, seu bolso). Dois sistemas populares de arquivamento são 
FYI File da FYI, Inc., e Aackobase da Aacksoft International. 

Finanças Domésticas 

Cuidar de seu talão de cheques particular é bem mais fácil do que tomar conta de um 
negócio completo. Um programa de finanças domésticas é, portanto, muito mais simples do que 
o programa empregado em um empreendimento comercial. 


20 


MSX Guia do Usuário 


A maioria dos programas financeiros domésticos o ajudam a: 

Acompanhar todo cheque emitido, incluindo a finalidade do cheque ‘ 

- Separar seus pagamentos por categorias; 

- Mapear suas finanças; e 

- Prever contas normais. 


Estas tarefas sao relativamente fáceis de serem realizadas, de maneira 
de software de finanças domésticas para o MSX têm outras características. 


que muitos dos pacotes 


& você tlter tragem, poderá escrever seu próprio pacote em MSX-BASIC pois apesar 
de ser um programa bem longo, não é difícil de ser feito. De fato, muitos livros de BASICMêm 

poée™ compor Set W C ° mPUtad0r tSO b0 " S C ° m ° mUItos dos q» 


Auto-Aperfejçoamento 

Uma das principais razões porque as pessoas compram computadores domésticos é 
para melhorar suas vidas. A utilização de um processador de palavras em lugar de uma máquina 

XrLT 0 / n0rmataenle " m «^e q«= satisfaz totalmente 

necessidades. Porem, existem muitos outros programas que permitem um aprendizado sobre 

voce mesmo, uma melhona em suas habilidades e o estudo de assuntos novos. 

Mrntas pessoas não sabem escrever a máquina e não querem perder tempo indo à escola 
para aprender. Os programas que ensinam datilografia, disponíveis para o MSX são maneiras 
excelentes de aprende, a dattlografar com velocidade própria. Muitos destespropaZnão 

velÔdd™de P ‘ Em lnnf° "°T ° funcionament ° d ° teclado, mas também como aumentar a 
tocldeía. J ° S0S ^ tranSformam 0 ^Prandizado de datilografia numa 

. E ^ Síem a f da muitos cursos acadêmicos disponíveis para todos, desde crianças em idade 
pre-escolar ate adultos. Os educadores discordam entre si da utilização do computador para ensinar 

exSr»3o ’co?r ai8S C °T aprendel 3 MCIeVer ‘ raatemátka: enquanto 4»» acham 
, ' , , 0 = ondenam por tomar o aprendizado um exercício de repetição. Independem 

nte do debate, existem dúzias de pacotes educacionais disponíveis aos computadores MSX. 

r,„„„if XÍS “ !m aÍ ” da j0 ?“ educadon,iis í ue ensinam & crianças e os adultos tarefas não-tradi- 
cronars como cooperaçac e taquigrafia. Apesar de estes pacotes serem com frequência Itstados 

como jogos, sao em verdade programas qne auxiliam no aprendizado de tarefas que tomam a 

— 7T ma “ P ° r « Presuma muito peeuu“ 

S ch o f the Most Amazmg Thíng”, de Spinnakei Software. Este jogo ajuda crianças e jovens 

adolescentes a fazer anotações, ler um mapa, barganhar e conseguir ajuda na tomada de deíisões 
2SU Z£“ COmPleX ° d ° qU€ 05 ° Uír0S ’ ^ « **« F» a maioria 


Aprendendo Mais sobre Computadores 

„ Uma das mals comu - ri! qt* levam as pessoas a comprar um computador MSX é 

que querem aprender mais sobre computadores”. Existe um sentimento generalizado na soete- 


O que é possível realizar com um computador MSX 21 


dade brasileira que diz que se você nao “conhece sobre computadores”, está destinado a um 
emprego pobre e uma desgraça social. Este receio é completamente infundado. 

Ò material constante nos Capítulos 1 ao 4 deste livro, será provavelmente mais do que sufi- 
ciente para uma compreensão básica a respeito de computadores - pelo menos suficiente para 
que não tenha medo deles se os encontrar em seu trabalho. Certamente não precisará saber como 
programar um computador, ou como opera a parte eletrônica dentro do computador, para que 
você possa sobreviver em uma sociedade moderna. 

Existe, sem dúvida, muito mais a aprender sobre seu computador MSX. Você poderá saber 
mais a respeito de software, como programar em MSX-BASIC, ou a respeito do hardware dentro 
de seu computador MSX. Na maioria dos casos, qualquer conceito aprendido sobre seu compu- 
tador MSX será largamente aplicável em outros computadores, independentemente se são domés- 
ticos ou de grande porte. Assim você pode utilizar o seu computador MSX como um degrau 
para entender mais sobre outros computadores. Novamente, é importante enfatizar aqui que a 
maior parte deste entendimento tem utilidade apenas para aquelas pessoas que praticamente 
só trabalham com computadores. 

0 que a maioria das pessoas faz com os computadores MSX é aprender MSX-BASIC. O 
aprendizado de uma linguagem de computador do tipo MSX-BASIC poderá beneficiá-lo 'em diversas 
maneiras: 

— Você entenderá melhor como seu computador executa as tarefas; 

- Você começará a entender como é complicado programar um pacote grande como um 
processador de palavras; e 

— Você entenderá melhor o relacionamento entre os diferentes componentes de seu compu- 
tador (como o teclado e a UCP). 

Para os computadores MSX existem ainda disponíveis outras linguagens como C e Logo, que 
poderão interessá-lo. A C é uma linguagem avançada de programação; o pacote BDS-C está 
disponível pela Lifeboat Associates. A linguagem Logo é muito popular no ensino de progra- 
mação para crianças; uma versão excelente da Logo está disponível pela The Lisp Company. 

É importante lembrar que para utilizar o computador você nada precisa aprender sobre 
linguagens de computador. Grande parte das pessoas da área de computação defende o apren- 
dizado de uma linguagem de computador, apesar de muitos outros acharem que é contra- 
producente para a maioria dos usuários primários. Não se preocupe se você acha que o MSX- 
BASIC o intimida; é assim para muitas pessoas. 

Se quiser aprender mais sobre hardware, existem muitos livros no mercado que explicam 
a parte interna dos computadores. Entretanto, é extremamente difícil descrever o hardware de 
um computador sem se tornai muito técnico, e será necessário bastante conhecimento de eletrô- 
nica para entender como os diversos integrados de seu MSX interagem. 



CAPITULO 

3 


EXPANDINDO O SEU COMPUTADOR MSX 



para c N L Ca MSX 0 r f l e H Or f0ra ” £id “ 0S dlVeiS0S **“ de P»*— *» você pode comprar 

MSX Em aS T™ " ° ^ Você P ode adlcímar a ° «u computador 

' , r f JIlS computadores, parte dos produtos mencionados aqui são padrões enauanlo 
outros estão disponíveis apenas como opções. paaroes, enquanto 

Assim como o conector padronizado, para colocação de um cartucho facilita a como™ do, 
propamas para o MSX, facilita também a compra do hardware para o MSX S f br"d 
penfencos de hardware (hardware que você acrescenta ao seu computador! Mopmcbám se 

q “ e e “ ,e C ° mPUtadM MSXi baSta ™ “ttucho como 

Uma vez que os computadores MSX são relativamente baratos, você pode indaaar por oue 
d c ™P rar °“ tr ° hardware, em alguns casos mais caro do que o computador. Alguns periféricos 
sao muito uteis em casa ou no escritório e permitem que seu computador MSX execute mais 
funções (como processamento de palavras). Você pode querer comprar outros periféricos apenas 

rrr Cem mteressants f . Cot >° “O programas, existe mais hardware disponível 

do que o necessano para um unico usuário. ** 

À medl&aT^MSxTÍ “ P "‘ e dos P eiifél ? c “ d «PMíveis para os computadores MSX. 
dida que o MSX se tornar mais popular, serão desenvolvidos novos periféricos Uma vez aue 

o preço dos penfencos muda com a sua disponibilidade e popularidade, neste capítulo o preço é 

mencionado apenas ocasionalmente. Para preços atuais de periféricos, verifique os anúncios ms 
revistas sobre computadores domésticos. 4 anúncios nas 


Expansor de Cartucho 


evemuLen tl íZT 7 P " a ^ “ m »«*"<*»■ a P***» =q™çio 

maT lí^T 7 eXPanSM d5 CaItUCha B,e ocupa o espaço do cartucho 

por lez ^ eSPaf “ n ° V0S DeSIE m0d ° é P0SSÍTCl U,mzaI mais d0 q ue um cartucho 

22 


Expandindo o seu computador MSX 


23 


Alguns computadores MSX incluem um conector que não é um padrão do MSX. Os fabri- 
cantes destes computadores com frequência vendem expansores que podem ser ligados a estes 
conectores, fornecendo deste modo espaço para mais cartuchos sem perder nenhum. Para utilizar 
este conector, entretanto, você deve comprar o expansor do mesmo fornecedor que fez seu 
computador. 

Antes de comprar periféricos de hardware que requerem um lugar de encaixe, verifique se 
existem locais suficientes para estes periféricos poderem ser ligados. Por exemplo, se seu compu- 
tador tiver espaço apenas para um cartucho e você quiser ut iliz ar um programa de processamento 
de palavras que está em cartucho bem como uma impressora que utiliza o mesmo ponto de cone- 
xão, não será possível utilizar os dois ao mesmo tempo a menos que se adquira um expansor. 
Uma alternativa seria a aquisição de uma impressora que pode ser ligada ao conector de impressão 
existente na maioria (mas não todos) dos computadores MSX. 

RAM adicionai 

Se o seu computador MSX tiver 16K ou 32K de RAM, poderá haver necessidade de 
expandir a memória. O MSX-BASÍC poderá utilizar até 32K de RAM. enquanto o MSX-DOS 
exige 64K. Caso você seja um programador experiente necessitará de mais memória para escrever 
programas em BASIC ou outras linguagens que utilizam mais do que 32K de RAM. 

Existem cartuchos disponíveis pela maioria dos fabricantes que permitem a expansão da 
memória de seu computador MSX. Antes de comprar um cartucho deste tipo, você deve verificar 
com.o distribuidor, certificando-se de que a memória adicional irá operar com seu computador e 
que seu software pode utilizar a memória adicional. Por exemplo, se você estiver utilizando apenas 
o BASIC, a expansão RAM a um computador de 32K não fornecerá possibilidades adicionais 
de programação. Assim, esteja certo de poder utilizar a memória adicional antes de comprá-la. 

Controles para Jogos 

A maioria dos jogos disponíveis para os computadores MSX pode ser controlado por 
manipuladores, muito semelhantes àqueles existentes nos aparelhos de vfdeo jogos. Estes mani- 
puladores permitem que se tome rapidamente as direções para cima, para baixo, esquerda e 
direita; possui também um gatilho utilizado quando se deseja, por exemplo, dar tiros em uma 
nave espacial inimiga. 

Todos os computadores MSX têm pelo menos um conector para a ligação de um contro- 
lador, podendo ter mais um para outro manipulador. Qualquer computador MSX pode u tiliz ar 
manipuladores fabricados para outros computadores MSX, bem como aqueles fabricados para os 
computadores domésticos tipo Atari ou para os video jogos. A maioria dos usuários compra 
manipuladores baratos, existindo porém os modelos mais caros para os jogadores “experientes”. 

Armazenamento em Cassete 

Todos os computadores MSX têm um plugue onde pode sei conectado um gravador 
de fita cassete. Podemos utilizar os cassetes para armazenar e recuperar programas escritos em 
MSX-BASÍC ; pode-se também armazenar dados em cassete. 


24 


MSX Guia do Usuário 


Alguns gravadores cassete, caseiros, podem ser utilizados com seu computador MSX. Caso 
você já tenha um gravador cassete é possível utilizá-lo, em vez de comprar outro para ser utilizado 
no computador. As principais exigências para estes gravadores é que tenham três soquetes: 
microfone, fone de ouvido (ou alto-falante) e “remoto”. Verifique se o tamanho dos plugues 
fornecidos com o seu computador MSX é compatível com os soquetes de seu gravador. Se 
for, provavelmente será possível utilizá-lo. 

Se você não tiver um gravador cassete compatível, poderá comprar um relativamente 
barato. São vendidos em lojas de computação e de som. (Não esqueça de verificar se ele é ade- 
quado ao seu computador.) (Os gravadores paia armazenamento de dados normalmente custam 
menos do que 15 ORTN.) 

O cassete que você utiliza para armazenar informação, é o mesmo utilizado para gravar 
música. Alguns fabricantes vendem cassetes “especiais”, que, normalmente, são idênticos aos de 
música de alta qualidade, apesar de serem, geralmente, mais caros. 


Acionadores de Disco 

Caso você utilize bastante o seu computador MSX — especialmente se você o está utili- 
zando em seu trabalho — pode ser que precise comprar um acionador de disco para ele. Um 
acionador de disco armazena dados e programas com muito mais velocidade e facilidade do que 
um gravador cassete. 

A principal desvantagem de se comprar um acionador de disco, é seu preço. É comum o 
acionador de disco custar o mesmo que o computador MSX. Para muitos usuários, este custo é 
proibitivo. Entretanto, certos programas, para serem utilizados, exigem que se tenha um acionador 
de disco. (Estes programas por sua vez são caros, tomando a compra do acionador ainda mais 
difícil.) Cada modelo de acionador tem uma quantidade diferente de dados que podem ser arma- 
zenados, de modo que é importante que se faça uma boa pesquisa antes de fazer uma compra. 

Quando você salva os dados em um disco ou em um cassete, a informação é armazenada 
em arquivos. 0 armazenamento de informação em arquivos é parecido com organizar dados em 
pastas suspensas em um gabinete de aço. Um arquivo é uma coleção de informações identificadas 
por um único nome, fornecido por você. 0 armazenamento de informações em arquivos é funda- 
mental para utilização do computador; sem os arquivos o seu trabalho se perderia com o desliga- 
mento do computador. 

A informação em um arquivo pode ser: texto (como um memorando), dados (uma lista de 
endereçamento postal), ou um programa (como processamento de palavras). 0 arquivo pode ter 
qualquer extensão, sendo limitado apenas pelo espaço disponível no disco ou cassete em que será 
armazenado. Quando você quiser que um programa opere com um arquivo (ou para ler informa- 
ções do arquivo ou acrescentar informações ao arquivo), basta utilizar o comando de acesso ao 
arquivo e informar ao programa o seu nome. 

Como foi mencionado anteriormente, é muito mais conveniente armazenar arquivos em 
discos do que em cassetes. O disco é uma peça redonda, de material rígido, coberto por um 
material magnético; um disquete (ou floppy) é a versão flexível do disco. Os dois tamanhos mais 
comuns para os disquetes são 5 1/4” e 3 1/2”. O que acontece quando o MSX recupera arquivos 


Expandindo o seu computador MSX 


25 


armazenados em disco? O disco gira em alta velocidade enquanto a cabeça do disco se movimenta 
para dentro e para fora (a cabeça do disco é semelhante às cabeças de gravador de fita comum), 
0 movimento é idêntico à seleção de uma música em um disco. Quando você pede para ver um 
determinado arquivo, a cabeça se dirige primeiro ao diretório, uma região especial do disco que 
íem informações sobre cada arquivo. Encontra o local do arquivo desejado e em seguida se desloca 
para o local em que o arquivo se encontra. 

Você pode estar se perguntando como a cabeça do disco encontra o arquivo. Existem entra- 
das no diretório formadas por dois números para cada arquivo: a trilha e o setor. 0 MSX-DOS 
utiliza esta informação paia determinar o local de cada arquivo no disco. O número de bytes por 
setor é constante em um determinado disco, mas o número de bytes por setor poderá variar para 
os diferentes acionadores que podem ser comprados para o computador MSX, Assim pode variar 
também o número de setores por trilha. Felizmente, o MSX-DOS mantém este controle para 
você. 

A Figura 3.1 ilustra as trilhas e os setores em um disquete. 0 número da trilha é basicamente 
a medida da distância do arquivo à borda do disco. As trilhas são círculos concêntricos no disco 
e como podem comportar uma grande quantidade de informação, são divididas em setores. Dando 


Abertura central Mídia do disquete 



Figura 3.1 Trilhas e setores em um disco. 




26 


MSX Guia do Usuário 


continuidade à analogia com o disco de som, as trilhas sao como ranhuras, e os setores como partes 

de uma ranhura. Os setores são medidos a partir de um ponto fixo, no sentido anti-horário, dando 
volta no disco do começo ao fim. 

Assim, o diretório informa à cabeça do disco a que distância do centro deve procurar e 
quanto tempo deve aguardar durante uma rotação antes de iniciar a leitura de informação. Encon- 
trar uma determinada trilha é como encontrar uma música em um disco fonográfico A seleção 
do setor e como procurar um compasso dentro da música. 


Impressoras 

Apòs ver a mfonnação na tela de seu computador MSX, provavelmente vai querer imprimi-la 

em papel para referencia futura ou para mostrá-la a outras pessoas. Para imprimir a mformacío 
no papel e necessário utilizar uma impressora. 

Quase todo usuário de computador comercial tem uma impressora. As impressoras variam 
muito nas características e no preço. Uma impressora comum é ligada ao seu computador MSX 
por um conector de impressão ou por meio de um cartucho. Podemos instruir a impressora para 
imprimir caracteres através do MSX-BASÍC ou do MSX-DOS. Algumas impressoras ainda podem 
imprimir gráficos (figuras) com o processamento de um programa especial. 

As impressoras podem ser de duas categorias: matriz de pontos ou qualidade de letra. As 
impressoras de matriz de pontos imprimem um caractere pela combinação de pontos para formar a 
letra. As impressoras do tipo qualidade de letra, por outro lado, imprimem os caracteres da mesma 
forma que uma máquina de escrever. As impressoras de matriz de pòntos normalmeníe são mais 
baratas e imprimem com mais rapidez do que as de qualidade de letra, mas o resultado destas é 
de melhor qualidade. Algumas impressoras do tipo matriz de pontos dizem ter quaüdade de cor- 
respondência, sipri ficando que as letras formadas parecem exatamente com as da qualidade de 
letra. Algumas impressoras tipo matriz de pontos, podem, às vezes, imprimir gráficos. Mas as 
impressoras de qualidade de letra não podem. 

As utilizações mais comuns para as impressoras são os programas de processamento de 
palavras. Voce pode digitar e editar uma carta ou um relatório utilizando o processador de 
palavras para em seguida imprimir o resultado em sua impressora. Sempre que necessitar de uma 
copia em papel de seu trabalho, você precisa de uma impressora. 


Periféricos Adicionais 


Sem „ dÜVlda ’ muitos ou tros periféricos que você pode comprar para seu compu 
tador MSX. Esta seção apresenta alguns dos mais interessantes. 


DISPOSITIVOS SONOROS 

Uma das utilizações mais populares dos computadores domésticos é o aprendizado e criação 
de musica. As possibilidades sonoras dos computadores MSX são melhores do que as de muitos 
computadores domésticos, e é sempre possível fazer adições a estas capacidades. 


Expandindo o teu computador MSX 


27 


Quase todo mundo já escutou música tocada por um sintetizador. Você pode comprar 
cartuchos para o seu computador MSX que o transformam em um sintetizador; na verdade, no 
computador CX5M da Yamaha, está incluído, dentro da unidade principal, um sintetizador e 
ama interface para instrumento musical. 0 sintetizador pode ser controlado via MSX- BASIC 
ou via teclado. 

Uma vez que é possível criar música e efeitos sonoros de alta qualidade com o seu compu- 
tador MSX, poderá haver interesse em amplificar o resultado em seu sistema de alta- fidelidade. 

Vários computadores MSX têm plugues que permitem a ligação do áudio em amplificadores 
externos. 


GRÁFICOS 

Na indústria dos computadores o campo de maior crescimento é o dos gráficos. Os preços 
dos periféricos gráficos estão caindo rapidamente, de modo que muitos periféricos que eram 
comprados apenas pelas grandes empresas, podem agora ser adquiridos pelo usuário doméstico. 

Um periférico que se está tomando bem comum é a caneta ótica. Esta ferramenta em 
rorma de lápis permite “desenhar” quando é encostada na tela. Você pode utilizar a caneta 
otica para fazer desenhos, para dar respostas rápidas a questões existentes na tela, bem como 
para muitas outras tarefas. Podemos utilizar da mesma forma que uma caneta ótica, uma prancha 
digitalizadora. Esta prancha é colocada sobre a mesa. Com o dedo você faz traços sobre a tabuleta 
que se repetem na tela. 

Apesar de ser possível desenhar com uma caneta ótica ou com uma prancha digitalizadora 
no s , eu COTn P u tador MSX, pode haver interesse em ler fotografias ou outro tipo de informação 
pictórica, em vez de desenhar. Para conseguir isto, será necessário um dígitalizador de imagem, que 
nada mais é jdo que uma câmara eletrônica que pode ser ligada ao computador. A imagem será 
digitalizada” para uma forma que o computador possa ler, armazenar e imprimir. Será neces- 
sário também o programa que permita ao MSX-BASIC ler a imagem digitalizada. 

Alguns periféricos permitem que você misture as imagens de seu televisor com aquelas que 
\ocê armazenou em seu computador MSX. Estes dispositivos podem ainda armazenar as imagens 

da televisão e permitir que sejam modificadas, pela alteração da cor -ou eliminação de parte 
da figura. 


CONTROLE DAS APLICAÇÕES DOMÉSTICAS 

Os computadores MSX podem controlar diversos dispositivos eletrônicos por intermédio 
de uma central de controle doméstico. Aplicações simples da central de controle doméstico cons- 
sistem em ligar e desligar a luz em instantes determinados ou ligar o bule de café ioda manhã. 
Pode-se adquirir harware mais sofisticado, que permita ao computador MSX controlar um sistema 
de segurança, impedindo assaltos ou alertando a polícia e o corpo de bombeiros em caso de 
emergência pessoal. 

O computador MSX poderá ainda ser utilizado para controlar o sistema de lazer doméstico 
Por exemplo, você pode comprar o hardware que controla o sistema de disco laser, de modo que 


28 


MSX Guia do Usuário 


seja possível mudar para qualquer quadro do disco laser, baseado em informações armazenadas 
no computador. ,s,o pode ser d, 11 para enclclopédras armazenadas em d.sco l*™Ta iovo 
que armazenam imagens em disco laser. À medida que a tecnologia do disco laser japonês pro- 
g edrr, havera maior numero de aplicações que vão ligar os computadores MSX aos dfscos laser. 


ROBÔS 


Apesar das previsões dos últimos cinquenta anos, robôs que fazem a limpeza da casa e nre 

tormd, 1™"° Sí ° C ° mUnS atada ' 05 r0b “ 4 “ e íotó f' ode «mprar tim utilização muito 
limitada e geralmente nao são muito rápidos. Entretanto, o estudo dos robôs aumentou na última 

década, existmdo muitos robôs pequenos i disposição caso esteja mteressado em conhecí 

ha a, Alg T ! r0b ° S P °, dem l’ ,ngraj -'‘ aaos P el ° seu computador MSX. Por exemplo um robô 
bara o poderá ter um lugar para inserção de um cartucho e um módulo de memóna Você encaixa 
o modu o de memória em seu computador MSX e armazena al, as instruções do robô Ao píu^ 

o modulo no robo, este passa a obedecer as instruções. P ® 


CAPfTULO 

4 


INSTALANDO O SEU SISTEMA 


Os computadores não saem de suas caixas prontos para serem utilizados. É necessário realizar 
algumas tarefas para fazê-los operar. Felizmente, porém a maioria dos computadores MSX é fácil 
de ser instalada necessitando apenas alguns minutos e nenhuma ferramenta. 

Como cada tipo de computador MSX é instalado de maneira diferente, a informação deste 
capítulo é geral e não específica para um determinado computador. A seção que trata de cartuchos 
e cuidados gerais se aplica a todos os computadores MSX. 

Como Fazer o seu Computador MSX Operar 

Para instalar o seu computador MSX existem basicamente quatro passos: 

1 . Retire o computador e todos os componentes da(s) caixa (s). 

2. Leia as instruções que acompanham o seu computador. 

3. Conecte o computador ao seu televisor ou monitor. 

4. Conecte o computador à rede e ligue-o. 

Todos estes passos são bem simples, mas a maioria das pessoas pula o mais importante: a 
leitura das instruções. A importância deste passo não pode ser desprezada. Você deve ler estas 
instruções mesmo que as ache muito complicadas ou maçantes. Após tei retirado tudo da caixa 
(ou das caixas), guarde a(s) caixa(s) e o material de embalagem. O material de embalagem terá 
importância caso você mude o computador, e também será necessário caso você o devolva. 

Guarde todo o material impresso que veio junto com o seu computador em um mesmo 
local (uma pasta pode ser conveniente). Novamente, você deve ler a documentação — ou pelo 
menos aquelas partes que discutem a instalação e manutenção de seu computador; pode deixar 
as partes do MSX- BASIC para depois. 

Dependendo da marca de seu computador MSX, poderá encontrar um hardware adicional, 
além da unidade principal. Alguns computadores MSX vêm com periféricos mencionados no 
Capítulo 3. A maneira de ligar qualquer hardware adicional é descrita no manual do usuário. . 

29 


30 


MSX Guia do Usuário 


Se voce estiver utilizando o televisor como tela de seu computador, o seu computador MSX 
poderá vir acompanhado com um modulador RF. É um nome estranho para a caixa que liga o 
computador ao aparelho de televisão; em certas ocasiões é chamado “caixa de comutação de 
eve Voce liga os terminais do modulador RF ao conector de antena, atrás do apareüio de 
eevisão, como indicado na Figura 4.1, e liga o computador ao outro lado do modulador RF 
Uma vez que os moduladores RF variam de um fabricante para outro, é importante ler as instru- 
ções para fazer a instalaçao. Se estiver utilizando um monitor com seu computador, o cabo para 
este monitor deve acompanhar o computador. F 



Uma vez que o seu computador esteja ligado ao monitot ou televisor (e tenha sido conec- 

l ri' Tr dKCIÍt0 em Se “ miulual) ' VOCÉ está ^ P">nto conectá-lo 

ti®!, A "‘ <S de f “ e '!° le,a 3 P 3 ^ 3 <1“ 3 «tá no início do manual e se intitula “Informação 
HX (ou algo parecido). Nao se assuste com os avisos, mas esteja ciente de que a utilização de 
seu computador poderá degradar a recepção do rádio ou do aparelho de televiio 

Siga as instruções do fabricante para a conexão do seu computador. Pode ser que você 
tenha de utilizar uma caixa de conversão, que tenha um plugue normal de parede de um lado e 
um plugue diferente no outro; em alguns computadores isto é interno e tem apenas os plugues 
normais. Se voce estiver utilizando um aparelho de televisão, siga as instruções do manual quLo 
ao canal que deve ser utilizado. M 

Finalmente, ligue o seu televisor (pode ser que queira abaixar o som); em seguida ligue o 
computador. Se voce seguiu as instruções corretamente, a sua tela mostrará uma mensagem com 
os direitos autorais do MSX; em seguida verá a tela inicial do MSX-BASIC, similar à Figura 4.2 
(nao se preocupe se a informação na tela for ligeíramente diferente). 


Instalando o seu sistema 


31 


Não entre em pânico, caso não apareça a tela inicial do MSX-BASIC. Seu computador pode 
estar programado para iniciar um programa diferente do MSX-BASIC. Caso não veja nada na tela 
rode ser que a conexão entre o computador e o monitor (ou televisor) não está coneta. 


r 


MSX BASIC version 1.0 
Copyright 1983 by Microsoft 
2881 5 Bytes free 
Ok 


Pigitrs 4.2 Tela inicinl d.o MSX-BASIC. 


Utilizando Cartuchos 

A utilização de cartuchos na MSX é bastante simples, existindo porém algumas regras de 
como instalá-los. Uma das regras mais importantes a serem seguidas é a de não colocar ou retirar 
um cartucho enquanto o computador esüver ligado. Se tal acontecer, quando você insenr ou 
remover o cartucho, isso poderá danificar o programa do cartucho; é até possível danificar o seu 
computador. Portanto, esteja certo de que o computador está desligado antes de mexer com 

o cartucho. 

Uma vez que o cartucho do MSX é retangular, existem oito modos de colocá-lo, mas apenas 
um está correto'. A Figura 4.3 mostra a vista posterior de um cartucho. A maneira coneta de 
inserir o cartucho é com a etiqueta para cima e a fenda do cartucho deve encaixar no conector. 


Fazendo a Manutenção de Seu Sistema 

O seu computador MSX não precisa de manutenção, no sentido daquela que um carro 
precisa. Existem, entretanto, algumas diretrizes bem simples que devem ser seguidas para manter 
seu sistema livre de erros: 

- Trate a unidade principal e os periféricos com cuidado. Não coma, nem beba, enquanto 
estiver utilizando o computador, uma vez que migalhas e derrames acidentais danificam 
o teclado e a eletrônica interna; 


32 


MS X Guia do Usuárto 


frente do cartucho 



CORTE 


FENDA DO CARTUCHO 


Figura 4.3 Parte frontal do cartucho M$X. 


' b M eb"d e a t a coLT; ÍmaÍS lM8e d ° COmputador - SaUva e P«» «o prejudiciais como 

- Cubra o teciado quaudo não estiver em uso. Tenha cuidado especial caso haja um excesso 
de polem ou poerra no ar. Utilize uma cobertura de tecido ou plástico St tico ° 

- Nao lave seu computador. Vocé pode limpá-lo com um tecrdo únSdo, tomando cuidado 

p r« que nlo entre agua nele. Nao utilize produtos químicos na limpeza (é pouco provável 
que seu computador fique tão sujo a ponto de precisar de química^ P 

Sem dúvida, siga qualquer ou.ro cuidado listado nos r-anuais que acompanham o computador. 


PARTE 

2 


APRENDENDO MSX-BASIC 










- 













































■ 


CAPÍTULO 

5 


INTRODUÇÃO AO MSX-BASIC 




É uma infelicidade a existência de tantas pessoas que acreditam ser necessário saber progra- 
mação para utilizar um computador. Isto pode ter sido verdade há vinte anos, mas hoje, com 
certeza, não é assim. Programas comerciais disponíveis podem executar quase qualquer função 
desejada. Por exemplo, você não precisa saber nada sobre programação para poder utilizar o 
programa de processamento de palavras. 

Você pode achar que pelo fato de o seu computador MSX ter vindo acompanhado pela 
linguagem de programação MSX-BASIC tenha de aprender a utilizá-lo. Fique tranquilo, não há 
nenhuma obrigação para aprender a programar em MSX-BASIC. Por outro lado, para entender 
melhor os computadores, pode ser que você queira aprender a programar. 

Aprender a programar é como aprender a consertar seu carro; não é necessário, mas muitas 
pessoas gostam de “mexer”. Com frequência você adquire um respeito maior pelo seu carro 
quando aprende a consertá-íó. Enquanto o aprendizado do MSX-BASIC não amplia significativa- 
mente seu entendimento de computadores, você pode apreciar a visão obtida no processo. A 
diferença que existe entre consertar um carro e fazer uma programação é de que com o carro 
você pode economizar milhares de cruzeiros, ao passo que dificilmente fará economia escrevendo 
um programa Se você tiver conhecimento sobre mecânica de automóvel, poderá discutir misturas 
de ar-combustível e razões de compressão durante um coquetel; quando conhecer programação 
de computadores poderá discutir rotinas recursivas e variáveis com ponteiros indiretos. 

Existem dúzias de linguagens de programação que você poderia aprender, mas existem 
diversas razões para que o MSX-BASIC seja um bom ponto de partida; 

- Conveniência. Uma vez que o MSX-BASIC vem incluído em seu computador, você não 
precisa comprar nada. Basta ligar o seu computador MSX e processar o MSX-BASIC. 

- Popularidade. Quase todo computador pessoal fabricado nos últimos dez anos processa 
alguma versão de BASIC. Já que existem mais pessoas que sabem programar em BASIC 
do que qualquer outra linguagem, existem centenas de livros que ensinam programação 
BASIC. 


35 


36 


MSX Guia do Usuário 


— Fácil de aprender. BASIC é uma das linguagens de computador mais simples, o que a 
toma uma das mais fáceis de ser aprendida. Apesar de existir mais de 100 comandos e 
funções no MSX- BASIC, os conceitos que regem seu uso são fáceis de entender. 

Muitos expertos em computação descartam BASIC porque os programas que são escritos 
nela não são tão elegantes como aqueles escritos em outras linguagens. Alegam que se você aprende 
BASIC como sua primeira linguagem de computador não conseguirá apreciar a beleza de algumas 
das outras linguagens disponíveis. De qualquer modo, permanece uma das linguagens de compu- 
tação mais popular. 

O que é Programação 


A finalidade de escrever um programa, em qualquer linguagem, é a de fornecer ao compu- 
tador um conjunto de instruções a serem executadas. Por exemplo, se você quiser que o compu- 
tador adicione uma lista de números e encontre a média, deve escrever um programa que especifi- 
que cada passo necessário para atingir a meta desejada. 

Apesar de os computadores não “entenderem” as instruções como o faz uma pessoa, o 
resultado em se fornecer instruções ao computador será o mesmo que dar informações para uma 
pessoa dócil: ou o computador executa as instruções, ou lhe informará que não está entendendo 
o que foi solicitado. Evidente é que, ao “falar” com um computador, ou vice-versa, não se escuta 
som algum: as instruções são digitadas e o computador responde através da tela. 


DEFINIÇÃO DE UM PROGRAMA 

Um programa, portanto, é simplesmente um conjunto de instruções escritas em Linguagem 
compreensível pelo computador. A este conjunto de instruções pode-se dar um nome que o 
descreve. Por exemplo, se você pedir a uma criança para tirar o lixo, poderá dar-lhe as seguintes 
instruções: “Pegue o lixo que está em baixo da pia da cozinha e coloque-o na lata de lixo. Se 
for segunda-feira à tarde, você coloca a lata na calçada; caso contrário, basta verificar se a tampa 
está bem fechada.” Da próxima vez bastará que lhe diga: “Retire o lixo”, e a criança Saberá, com 
esta descrição resumida, executar o conjunto de instruções que você descreveu antes. 

Programar um computador é como ensinai uma criança. O programa que segue (escrito em 
português) ensina o computador como tirar o lixo: 

Tirar o lixo significa: 

Primeiro, tirar o lixo que está embaixo 
da pia da cozinha, em seguida 
colocá-lo na lata de lixo. 

Segundo, verificar se hoje é segunda-feira. 

Se for segunda-feira, coloque a lata na 
calçada, caso contrário verifique se 
a tampa está bem fechada. Se a tampa 
não estiver bem fechada, movimente-a 
de modo que fique bem fechada. 


Introdução ao MSX- BASIC 


37 


Este programa mostra muitas das características encontradas em programas típicos de 
um computador: 

- Organização . Os programas sempre informam ao computador em que ordem ele deve 
executar as tarefas. Um computador começa do início do programa lendo-o ate o fim, 
executa as instruções à medida que as lê. 

- Comandos diretos . São comandos incondicionais que o computador sempre deve fazer 
(como “tirar o lixo que está embaixo da pia da cozinha”). 

- Informações variáveis. Neste programa, a informação variável é o tempo (segunda-feira) 
e a condição da tampa. Outro exemplo seria de que o computador deve colocar a lata 
de lixo na calçada “a não ser que estivesse vazia”; neste caso, o computador verificaria 
também o peso da lata. 

- Ação condicional. O computador toma uma decisão e executa uma determinada ação 
se uma dada condição for verdadeira, mas executa uma ação diferente se a condição 
for falsa. Neste caso, a condição é “hoje é segunda-feira”; se for, o computador retira 
a lata de lixo, se não for, verifica a tampa. Os programas de MSX-BASIC com freqüência 
executam ações condicionais. 

Como você pode ver, dizer ao computador como executar uma tarefa é como dizer a uma 
pessoa como executá-la. Ao escrever um programa, é da maior importância ser explícito sobre a 
:rdem dos comandos e as ações condicionais. (Por exemplo, você não descreveria para alguém 
como trocar os pneus dando as etapas na ordem errada.) É claro que, se não precisasse lembrar 
ie mais nada, programar seria uma barbada. 


COMUNICAÇÃO COM O SEU COMPUTADOR MSX 

Em um determinado aspecto, escrever um programa para um computador é diferente de 
explicar um conjunto de ações para uma pessoa: é necessário aprender uma nova linguagem para 
>e comunicai. Apesar do aprendizado não ser muito difícil, dar instruções naquela linguagem 
poderá apresentar dificuldades até ter-se acostumado com ela 

Linguagem de programação é a linguagem utilizada quando você informa ao computador 
o que fazer. Não é possível fazer a programação em inglês já que os computadores não entendem 
suficientemente o inglês (apesar de você, certamente, ficar surpreso com a quantidade de inglês 
que eles entendem). Já que o seu computador MSX entende o MSX-BASIC é esta a linguagem 
que você deve aprender. 

Uma linguagem de programação é a linguagem que você utiliza para falar com o compu- 
tador, não sendo aquela utilizada em conversação. A diferença é muito importante. O seu 
computador MSX não falará com você em MSX-BASIC. Normalmente responderá em inglês, 
mas não sempre. 

Um dos aspectos mais frustrantes da programação de computador é a de ser quase sempre 
uma comunicação unidirecional: o que você realiza em uma hora de teclagem. poderá resultar 
em uma resposta de apenas cinco palavras do computador. 



38 


MSX Guia do Usuário 


Normalmente, o computador nao responde nada a nao ser que você peça. Ê como dizer a 
uma criança como retirar o lixo; normalmente a única resposta dada é um ocasional “uh-hiih”. 
Se você diz ao computador para tirar o lixo, ele somente dirá alguma coisa se não entender a 
instrução. Estas “falhas” nas instruções indicarão o aparecimento de uma mensagem de erro 
na tela. No MSX-BASIC, estas mensagens são indicadas em inglês. As mensagens de erro ajudarão 
na determinação exata do que foi feito de eirado. 

Não pense que você não pode conversar com o computador; pode, desde que lhe dê as 
instruções corretas. Por exemplo, as instruções poderão informá-lo como deve fazer uma pergunta 

VT e como deve responder, se você der uma determinada resposta. Sem dúvida, estas instruções 
são tomecidas por meio de uma linguagem de programação. 

Para ser um bom programador, você deve entender a linguagem que estiver programando. 
Ioda linguagem de programaçao tem um vocabulário bem definido, bem como um conjunto de 
regras gramaticais - como as linguagens humanas. O vocabulário é como um vocabulário 
humano limitado, com verbos, substantivos e adjetivos. Quando você comete um erro ao infor- 
mar o computador o que fazer, isto normalmente se deve à utilização de uma palavra que não faz 
parte do vocabulário estabelecido ou porque foi utilizada uma construção gramatical inválida. 

0 vocabulário do MSX-BASIC é bem extenso e relativamente fácil de ser aprendido porque 
os verbos são muito parecidos com os do inglês. Por outro lado, existem poucos substantivos 
e adjetivos para serem aprendidos. A gramática do MSX-BASIC também é bem direta 


Pense em Escrever seus Próprios Programas 

Agora que você conhece um pouco mais sobre programação, deve estar pensando porque 
existem aquelas pessoas que passam por dificuldades para escrever um programa. Algumas pessoas 
acham bem atraente o salário recebido por programadores profissionais. Outros, sentem prazer 
em programar; consideram isto uma extensão de seus cérebros. 

Muitos se iludem pensando que podem escrever todos os programas com a linguagem de 
propamação que acompanha o computador MSX. Parece bem atraente, principalmente quando 
voce descobre que alguns dos programas comercialmente disponíveis são bem caros A triste 
verdade é que escrever um programa complicado poderá levar semanas ou meses, mesmo para 

o melhor programador, Freqüentemente é mais econômico comprar um programa do que 
escrevê-lo. • M 

Isto não deve desencorajá-lo a aprender a programar. Como foi mencionado no Capítulo 2, 
existem muitas razões boas para aprender o MSX-BASIC. Entretanto, não comece a aprender 
a linguagem pensando que vai utilizá-la para criar todos os programas que for precisar. 

O MSX-BASIC é muito bom para escrever programas de jogos. Já que existem muitos 
livros que contêm listagens em MSX-BASIC de programas para jogos, você pode economizar 
muito dinheiro digitando os programas em vez de comprar o cartucho. À medida que você digita 
os programas, poderá ter uma noção a respeito da linha de raciocínio do programador ao fazer 
o programa. Após ter jogado, poderá fazer pequenas modificações no programa, que atenda a 
seus interesses particulares ou capacidades. 


Introdução ao MSX-BASIC 


39 


Lembre-se de que o melhor motivo para que se escreva um programa é aprender mais sobre 
o uncionamento do computador MSX - e computadores em gerai. Enquanto você escreve 
programas e os processa, verá que aumentará seu conhecimento a respeito da lógica, e da ordem 
exigidas pelo computador. Terá um melhor conhecimento a respeito das limitações do compu- 
tador e das limitações inerentes do MSX-BASIC- 

Apos ter dominado o MSX-BASIC e ter escrito alguns de seus próprios programas, pode 
ser que voce queira aprender outra linguagem. Existe muito em comum entre o BASIC e outras 

guagens, de modo que aprender uma segunda linguagem se torna muito mais fácil do que 
aprender a primeira. 

Indepen dentemente da linguagem escolhida, escrever programas ajudará você a aprender 
mais sobre seu computador. Se você se envolver muito com programação, descobrirá, também 
novas idéias de como organizar dados e procedimentos. Assim, aprender a programar ajudará 
voce a entender mais a respeito de informação e de lógica. 


CAPÍTULO 

6 


O SEU PRIMEIRO PROGRAMA MSX-BASIC 


A maneii a mais fácil de aprender o MSX-BASIC é colocar um programa no computador 
e analisá-lo. Este capítulo ensina como colocar um programa no computador, armazená-lo em 
fuá ou disco e processá-lo. Você também aprenderá a utilizar algumas técnicas usadas para teclar 
um programa e fazer pequenas alterações nele. O Capítulo 7 discutirá as diferentes partes de um 

programa. Os Capítulos 8 até 16 falarão mais a respeito dos comandos e funções específicas do 
MSX-BASIC. r 

Um manual de referência do MSX-BASIC sem dúvida acompanhará seu computador. Em 
vez de ensinar, o manual descreve cada parte da linguagem. À medida que você ler estes capítu- 
los, poderá ser interessante acompanhar pelo manual alguns detalhes sobre os comandos espe- 
cíficos. Este livro cobre todas as partes do MSX-BASIC, não entrando nos detalhes que são 
encontrados no manual, uma vez que isto normalmente é considerado um fator desfavorável 
ao aprendizado de uma linguagem. Utilize este livro como ferramenta para aprender e o manual 
como fonte de referência. 


Iniciando o MSX-BASIC 

Para que seja possível programai em MSX-BASIC é indispensável que você esteja proces- 
sando o MSX-BASIC. Se você ligar o seu computador MSX sem inserir nenhum cartucho ele 
começara a processar o MSX-BASIC. (Na verdade, quase todos os computadores MSX se com- 
portam deste modo. A um procedimento diverso consulte o manual para ver como deve ser 
iniciado o MSX-BASIC.) Se você tiver um acionador de disco, com o disco colocado, siga as 
instruções para dar início ao MSX-BASIC fornecidas no início do Capítulo 18. 

Caso você tenha um acionador de disco com seu computador MSX, haverá um programa 
denominado MSX-DISK BASIC, que é uma versão extensível do MSX-BASIC, significando que 
é quase o mesmo mas com algumas características a mais. Quando você dá inído ao MSX-BASIC 
com o acionador de disco, também estará dando partida ao MSX-DISK BASIC. Todas estas 
40 


O seu primeiro programa MSX-BASIC 


41 


MSX BASIC version 1.0 
Copyright 1983 by Microsoft 
28815 Bytes free 
Ok 

m 


— 

MSX BASIC version 1.0 
Copyright 1983 by Microsoft 
28815 Bytes free 
Dísk BASIC version 1.0 
Ok 


Figura 6.1 Telas iniciais do MSX-BASIC. 

características estão relacionadas à utilização do acionador de disco, de modo que quem não 
possui um acionador de disco não perde nada por ter o MSX-DISK BASIC. Os comandos do 
MSX-DISK BASIC são mencionados com os comandos MSX-BASIC neste livro; se você não 
tiver um acionador de disco, ignore-os. 

Entrando com Comandos em MSX-BASIC 

Uma vez iniciado o processamento do MSX-BASIC, a sua tela deve apresentar-se com uma 
das apresentações da Figura 6.1 , As palavras na parte superior da tela aparecem apenas quando 
você dá início ao MSX-BASIC; a linha que diz “Ok” significa que ele está pronto para receber 
instruções. Existe também uma linha com palavras na parte inferior da tela, indicada na Figura 6.2. 


color auto goto list run 


Figura 6,2 Linha na parte inferior da tela. 






42 


MSX Guia do Usuário 


0 retângulo brilhante que aparece embaixo do pronto “Ok” é denominado cursor. O cursor 
é importante no MSX-BASIC porque indica aonde irá aparecer a próxima letra teclada. Para 
verificar, tecle algumas letras, e verifique que elas aparecem onde o cursor se encontra e que o 
cursor se movimenta para a direita cada vez que uma letra é teclada. 

Para apagar aquilo que foi teclado, aperte a tecla denominada BS ou BACKSPACE. A tecla 
BACKSPACE opera da mesma maneira que a tecla de retrocesso em uma máquina de escrever, 
exceto que, ao deslocar o cursor para a esquerda, apaga o caractere. 

Agora você está pronto para teclar seu primeiro comando MSX-BASIC. Assegure-se de que 
o cursor está na margem esquerda (caso não esteja utilize a tecla BACKSPACE), e tecle: 

LIST 

(Não importa se você tecla com maiusculas ou minúsculas, ou ambos; este livro mostrará sempre 
maiúsculas.) 

Em seguida pressione a tecla RETURN; esta é marcada com uma flecha apontando para 
baixo e para esquerda ou com a palavra RETURN. Você encontra esta tecla próximo ao local 
em que está localizada a tecla RETURN em uma máquina de escrever eletrônica. Pressionar a 
tecla RETURN, em MSX-BASIC, significa que você quer -que o MSX-BASIC execute o comando 
que foi teclado nesta linha. Neste caso, você quer que o MSX-BASIC execute o contando LIST. 

Ao pressionar a tecla RETURN, o MSX-BASIC responde “Ok”. Esta, na verdade, não é 
uma resposta muito interessante, uma vez que o MSX-BASIC lhe informará “Ok” para quase 
tudo que você fizer. Entretanto, já que o MSX-BASIC não deu indicação de erro, significa que 
ele recebeu um comando válido. Se o MSX-BASIC tivesse imprimido a mensagem de erro 

Syntax error 


antes de imprimir o Ok , significaria que você lhe deu um comando que ele não entendeu. Se 
você neste exemplo tivesse recebido uma mensagem de erro, provavelmente teria digitado LIST 
incorretamente. 

Como brincadeira, faça que o MSX-BASIC lhe dê um erro (no futuro isso poderá acontecer 
com tanta freqüência que voce deve ir se acostumando com as mensagens de erro). Tecle 

LISR 

e pressione RETURN. Você verá 

Syntax error 

Ok 

Não importa o que você faça, o MSX-BASIC sempre dirá “Ok” quando estiver pronto para 
recebei mais comandos. “Syntax error” é a maneira de o MSX-BASIC dizer que você lhe deu um 
comando que ele não conhece, isto é, um que não está em seu vocabulário. Como você pode ver, 
o MSX-BASIC conhece o comando LIST, mas não a palavra LISR. 


0 seu primeiro programa MSX BA SIC 


43 


CORRIGINDO ERROS DE DIGITAÇÃO NOS COMANDOS 

Pela utilização das teclas de controle do cursor o MSX-BASIC permite que sejam corrigidos 
os seus erros de digitação. Como você deve lembrar-se, as teclas de controle do cursor são aquelas 
com as setas, normalmente no lado direito do teclado. 

Pressione três vezes a tecla com a seta para cima; observe que o cursor se movimenta para 
cima na tela e pára sobre o “L” em “LISR”. Pressione três vezes a tecla com a seta paia a direita, e 
o cursor se encontrará sobre a letra “R” em “LISR” (sem dúvida você será capaz de adivinhar o 
que vai acontecer se pressionar as teclas com seta para esquerda e seta para direita). 

Uma vez que você quer alterar “LISR” para “LIST”, deverá substituir o “R” pelo “T”. 
Com o MSX-BASIC isto é bem simples: basta teclar “T” com o cursor sobre o “R’\ Obsèrve 
que o comando agora é “LIST”. Teclar um caractere sobre o outro resulta em uma substituição 
(o “R” é esquecido como se nunca tivesse existido). Isto é denominado de teclagem sobreposta. Ao 
pressionar RETURN, a tela ficará como a Figura 63 . 


— 

MSX BASIC version 1.0 

Copyright 1983 by Microsoft 

28815 Bytes free 

Ok 

LIST 

Ok 

LIST 

Okntax error 


gk 


Fíguia 6.3 Após o segundo comando LIST. 


Sem dúvida, “Okntax Error”, parece um pouco estranho. Mas, se você pensar um pouco 
sobre o que foi feito pelo MSX-BASIC verá que faz sentido, Uma vez que “LISR” foi substituído 
por “LIST”, que é um comando válido, a resposta ao comando “LIST” foi exatamente igual 
à da vez anterior: imprimiu “Ok” na linha seguinte e colocou o cursor na linha que segue ao 
“Ok”. Ele ignorou o que havia na tela antes da alteração do comando. Assim, “Okntax error” é 
“Syntax error” com o “Ok” sobreposto; o “Ok” que apresenta o cursor sobre o “0” estava na 
tela desde o momento em que foi teclado “LISR”. 




44 


MSX Guia do Usuário 


O MSX-BÀSIC permite que você corrija um erro de diversas maneiras; a sobreposição é a 
mais fácil. Para verificar as outras, sobreponha ao “Ok”, que se encontra na mesma linha do 
cursor, a palavra LIRST, e pressione RETURN. Mais uma vez receberá a mensagem “Syntax 
error”. Utilize as teclas de controle do cursor para movimentar o cursor até o “R” em “LIRST” 
e pressione a tecla marcada com DEL ou DELETE. Observe que a letra que estava embaixo do 
cursor (o “R") desapareceu quando foi utilizada a tecla DEL. Pressione RETURN, e o MSX- 
BASIC executará o comando LIST. 

Uma outra tecla prática de se conhecer é INS, que em certos casos é designada como 
INSERT (INSERIR). Para saber como opera a tecla INS, dê o comando LT (você adivinhou: 
“Syntax error”!). Coloque agora o cursor sobre o “T” em “LU’ e pressione a tecla INS. Observe 
que o cursor se transforma em uma barra na parte inferior da letra — não no tamanho total da 
letra. Agora, tecle I, e observe que a letra é inserida à esquerda do cursor, e que a letra embaixo 
do cursor e aquelas à esquerda deslocam-se para a direita, abrindo um espaço para a nova letra. 
Tecle S e pressione RETURN. 

A lição que se tira daqui é que o MSX-BASIC permite corrigir erros de digitação, mesmo 
após a teclagem do RETURN. Basta mover o cursor para a linha em que o eno foi cometido 
e editar a linha por meio de sobreposição, cancelamento ou inserção de caracteres. Ao ser pres- 
sionado RETURN, o MSX-BASIC aceita a nova linha como se fosse recém-digitada. 


Digitando o seu Primeiro Programa 

Agora que você já sabe como inserir os comandos em MSX-BASIC e como corri gir os erros 
eventualmente ocorridos, está em condições de digitai o seu primeiro programa. Sem dúvida, uma 
vez que você não conhece muito sobie programação, o texto não terá muito significado. Não 
se preocupe muito com isto, uma vez que em breve você verá muito mais sobre programação 
(imagine que esteja assistindo a sua primeira aula de grego e o professor esteja explicando como 
perguntar em grego onde fica a biblioteca). 

O programa que segue é um programa típico em MSX-BASIC. Observe que toda linha inicia 
com um número; estes são denominados números de linha. Observe que a numeração aumenta à 
proporção que se avança no programa. O MSX-BASIC utiliza estes números para determinai em 
que ordem devem ser executadas as instruções. 

Por outro lado, você deve ter percebido que a palavra “Comando” tem sido utilizada desde 
o início do capítulo. Na verdade tudo digitado até o presente foram declarações. Existe apenas 
uma ligeira diferença entre as duas palavras: antes de um comando existe um número de linha, e 
no caso da declaração não. Uma declaração é executada imediatamente pelo MSX-BASIC; um 
comando é memorizado para ser executado posteriormente. Todo comando aprendido neste livro 
pode ser utilizado, também, como uma declaração e vice-versa. 

Digite o programa com muito cuidado, verificando cada linha após completá-la. Os erros 
de sintaxe serão apontados apenas mais tarde pelo MSX-BASIC, de modo que é melhor evitá-los 
por meio de uma digitação cuidadosa. Caso você perceba a existência de um erro, faça a correção 
utilizando o$ métodos aprendidos na última seção. 


O seu primeiro programa MSX-BASIC 


45 


10 REM Meu primeiro programa MSX-BASIC 
20 CLS 

30 PRINT "Aqui vem alguns gráficos ..." 

40 REM Acerte o relógio e espere 2 seg. 

50 TIME = 0 

60 IF TIME < 100 THEN GOTO 60 
70 REM Vá ao modo gráfico 
80 SCREEN2 

90 REM Faça alguns círculos concêntricos 
100 FOR I = 10 TO 50STEP 5 
110 CIRCLE (126,86), I 
120 NEXTI 

130 REM Espere 2 segundos novamente 

140 TIME = 0 

150 IF TIME < 100 THEN GOTO 150 
160 REM Faça algumas caixas aleatórias 
170 FOR J = 1 TO 50 
180 LINE (RND(1)*255,RND(1)*195) 

- STEP<RND<1)*50,RND(1)*50), 

RND(1 )*1 5,BF 
190 NEXTJ 

200 REM Espere 2 segundas novamente 
210 TIME = 0 

220 IF TIME < 100 THEN GOTO 220 

230 SCREEN0 

240 PRINT "Tudo executado!" 

Tenha certeza de que o comando iniciado com “180” é digitado em apenas uma linha, e 
não em três linhas como é visto aqui. Ao atingir o limite direito da tela, continue teclando (não 
acione a tecla RETURN); a linha de comando terá continuidade na próxima linha da tela. Neste 
livro, todas as linhas existentes nas listagens e que tenham mais do que 40 colunas (a largura da 
tela) continuarão em linhas novas. Porém, ao digitar as linhas, sempre tecle-as como uma linha 
longa; caso contrário o MSX-BASIC ficará confuso e dará mensagens de erro. 


Processando o seu Programa 

À medida que você digitava seu primeiro programa, deve ter visto elementos de progra- 
mação que pode compreender. Uma vez que uma parte das linhas digitadas saiu da tela (também 
conhecido por scrolling), você eventualmente vai querer rever o programa através do comando 
LIST. É ainda recomendável rever o programa quanto a erros de digitação. 

Entretanto, existe um interesse maior em processar o programa para ver o que ele faz. Assim, 
está na hora de você ver o segundo comando MSX-BASIC; o comando RUN. Tecle RUN e pres- 
sione RETURN. Como você deve ter percebido é necessário digitar RETURN após todos coman- 
dos. Daqui em diante, sempre que for dado um comando, este deve ser seguido por um RETURN. 
Caso não tenha havido erros de digitação, ocorrerá o seguinte: 


46 


MSX Guia do Usuário 


1. A tela fica fazia; 

2. A mensagem “aqui vem alguns gráficos ...” aparece durante dois segundos; 

3. A tela fica novamente vazia, e você verá nela oito círculos concêntricos; 

4. Dois segundos depois, 50 retângulos de diversos tamanhos e cores aparecerão espalhados 
na teia; e 

5. Dois segundos após os retângulos aparecerem na tela, a tela fica vazia e aparecerá a 
mensagem “Tudo executado!” assim como o “Qk”. 

Se tiver havido um erro de digitação e o MSX-BASIC o tenha detectado, limpará a tela impn- 
mmdo uma mensagem de erro na linha superior e o “Ok” na linha seguinte. O MSX-BASIC pára 

de processar o programa assim que ocorrer o erro. Não se preocupe com isto, pois você aprenderá 
a corrigir estes erros no Capítulo 7. r 


Dando uma Olhada no seu Programa 

Por ora vamos assumir que o programa operou como era de se esperar, e ao processar o 
programa voce viu o que acabamos de descrever. Observe que a tela está limpa, e que não se vê 
os comandos do programa digitado. Para que o MSX-BASIC liste todo o programa na tela utilize 
o primeiro comando que aprendeu, o comando LIST. Dê o comando LIST e em seguida RETURN 
o programa será listado na tela. , 

Observe que parte do programa desaparece na parte superior da teia, já que havia mais linhas 
do que a tela comporta. No Capítulo 7 você verá como listar apenas algumas linhas. 

t t rcT Se h ° UVer ^ Ím P reSSOra 1Íg3da 30 ** com P utador MSX, você poderá utilizai o comando 
ÍST para imprnmr pela impressora em lugar de imprimir na tela. Assegure-se de que a impres- 
sora esta corretamente ligada e que tenha papel. Dê o comando LLIST seguido de RETURN 
para imprimir a listagem em papel. 

Armazenando o seu Programa em Fita ou Disco 

Lembre-se do que foi dito no Capítulo 1 , quando o computador é desligado toda informação 
armazenada em RAM (onde o BASIC armazena os programas digitados) é perdida. Para evitar 
que seja necessário reteclax tudo novamente, devemos fazer o armazenamento em fita ou disco 
Fehzmente, isto é rek.ivamente fícü. Mesmo que haja erros no programa, que Mo tenham sido 
corrigidos, ele deve ser armazenado em fita ou disco. 

Se voce tiver um gravador cassete, siga as instruções do manual do computador para ligar 
o gravador ao computador. Se tiver um acionador de disco, siga as instruções do manual do acio- 
nador de disco para ligá-lo ao seu sistema. As duas seções que seguem explicam como preparar 
o gravador cassete ou o acionador de disco para salvar o programa. Leia a seção referente ao 
dispositivo que você tiver. A terceira seção explica como utilizar comandos para salvar o programa 
em fita ou disco, e como recolocar o programa de volta na RAM uma vez que ele foi armazenado. 

PREPARANDO O SEU GRAVADOR CASSETE 


O MSX-BASIC conhece dois tipos de gravadores cassete: aqueles que têm controle remoto 
(liga e desliga) do motor, e aqueles que não têm. Se o seu gravador tiver controle remoto, o MSX- 


O seu primeiro programa MSXBASIC 


47 


BASIC movimentará a fita para você. Caso o seu gravador de fita cassete não tenha controle 
remoto, será necessário acionar o botão PLAY do gravador, cada vez que seja preciso movimentar 
a fita. 

Uma vez ligado o cabo entre seu gravador e computador, é necessário inserir um cassete no 
gravador. A fita deve ser reenrolada até seu inicio. Se o seu gravador tiver a característica remota, 
nada irá acontecer quando for pressionado o botão rewind] primeiro você terá de desligar o cabo 
ligado no plugue do remoto. 

O MSX-BASIC armazena programas em seu gravador da mesma forma que o seu tape deck 
grava música; do começo ao fim. Se com o seu estéreo, você grava “Parabéns a você” no começo 
da fita, e reposiciona o gravador, gravando a “Nona Sinfonia”, será cancelada a gravação de 
“Parabéns a você.” Da mesma forma, se vocé gravar um programa no começo da fita faz o rebo- 
bínamento e gravar um outro programa, o primeiro programa será perdido para sempre. 

Portanto, você deverá tomar cuidado quanto ao local em que será feita a gravação na fita. 
Você tem duas alternativas: gravar apenas um programa em cada lado da fita, ou utilizar o conta- 
dor do gravador (se houver) para determinar o local seguro para gravar um novo programa. A 
utilização de um lado da fita por programa é o método mais seguro, mas o mais caro, uma vez 
que um programa ocupa apenas alguns segundos da fita. Anotar o número do contador para 
cada programa gravado e deslocar-se para uma área livre da fita é muito mais econômico, mas 
leva a uma maior possibilidade de se perder um programa, Lembre-se de que os contadores na 
maioria dos gravadores mais econômicos não são muito precisos. 

Independentemeníe do método escolhido, você deverá colocar o gravador no modo de 
“gravação” antes de salvar um programa em fita (normahnente acionando os botões RECORD 
e PLAY simultaneamente). Para carregar o programa na memória RAM, você deverá colocar o 
gravador no modo “play”. 


PREPARANDO O SEU ACIONADOR DE DÍSCO 

Após ligar o acionador de disco ao computador, ele estará pronto para armazenar e re- 
cuperar programas. Porém, para este propósito você necessitará de um disquete. Em nenhuma 
circunstância deverá ser utilizado o disquete de carregamento do MSX-DOS para armazenar pro- 
gramas. Será necessário preparar outro disco. 

A operação de preparação de um disco para receber programas é denominado formatação, 
e será discutida no Capítulo 18. Se você não estiver familiarizado com o conceito de formatação 
de um disco, deve ler aquele capítulo antes de continuar com este. 

Coloque um disquete novo no acionador de disco (se não souber como fazê-lo, leia o manual 
do acionador). Observe que formatar um disco apaga tudo o que existir nele; assim, você deverá 
tomar um cuidado todo especial para não formatar o disco do MSX-DOS que acompanha o seu 
acionador. 

É possível formatar um disco enquanto este estiver processando MSX-DOS ou MSX-BASIC. 
Para formatar um disco enquanto este estiver processando MSX-BASIC, dê o comando CALL 
FORMAT. Como cada fornecedor adota um procedimento diferente para formatar um disco, é 
impossível explicar o que ocorre em seguida. É provável que apareça um conjunto de opções na 


48 


MSX Guia Jo Usuário 


tela; afortunadamente, estas opçoes são explicadas no manual do computador ou no manual 
do acionador de disco. Caso contrário, leia as opções e utilize a mais apropriada. 

Após a formatação do disco, ele está pronto para o armazenamento de programas. É uma 
boa idéia colocar uma etiqueta na capa do disco que descreva o seu conteúdo (como “Meu 
primeiro programa em MSX-BASIC”). 

ARMAZENANDO O SEU PRIMEIRO PROGRAMA MSX-BASIC 

0 programa que você digitou será armazenado pelo MSX-BASIC caso você siga as instruções 
anteriores para utilização do acionador de disco ou do gravador cassete. Quando você estivei 
pronto para armazenar o programa, dê um dos seguintes comandos: 

Para cassete : Para disco : 

CSAVE "PRIMEI" SAVE "PRIMEI" 

Quando for dado o comando, o disco fará barulho ou a fita irá se movimentar. 

Como você deve ter adivinhado, o “C” em CSAVE representa cassete. O nome que aparece 
após o comando é o nome de seu programa. Quando' você for recuperar o programa, deverá 
utilizar o mesmo nome. Desta maneira você pode armazenar mais do que um programa no mesmo 
cassete ou disco, uma vez que cada programa terá um nome diferente. O nome não deve ter mais 
do que seis caracteres para a fita nem mais do que oito para o disco; as aspas não são levadas 
em conta"". No caso acima, “PRIMEI" tem cinco caracteres. 

Uma vez que o programa está armazenado, podemos desligar o computador sem receio. 
Paia verificar se o programa foi armazenado corretamente, você deve desligar o computador 
agora. (Em vez disso você pode dar entrada ao comando NEW; isto elimina o programa da memória 
sem desligar o computador.) 

CARREGANDO O SEU PROGRAMA NA MEMÓRIA 

Ligue novamente o computador e dê o comando LIST assegurando-se de que não existe 
programa algum na memória. Caso esteja utilizando fita, rebobine*a e coloque o gravador no 
modo “play”. Agora, dê um dos seguintes comandos: 

Para cassete: Para disco: 

CLOAD "PRIMEI" LOAD "PRIMEI" 

Observe como CLOAD combina com CSAVE e LOAD com SAVE. Dê o comando LIST para 
ver se o programa foi carregado. 

À medida que você escrever outros programas, lembre-se de dar a eles nomes diferentes 
na hora do armazenamento. Por enquanto, tudo o que foi feito foi a digitação de um programa 
que você não precisava necessariamente entender; listou-o; e salvou-o em fita ou disco. No 
próximo capítulo serão discutidos outros aspectos do MSX-BASIC, como é sua estruturação, e 
como compreender a linguagem. 



CAPITULO 

7 


ENTENDENDO UM PROGRAMA MSX-BASIC 


Uma vez que você já tem um programa que foi digitado e salvo, deve estar curioso sobre 
o seu conteúdo e porque a tela apresentou o comportamento visto, durante o processamento 
do programa. Para que isto seja compreensível, você deverá conhecer um pouco mais a respeito 
da estrutura de um programa MSX-BASIC. Felizmente, o programa denominado “PRIMEI” é 
um exemplo adequado de muitos dos elementos do MSX-BASIC. 

Você deve lembrar-se de que no Capítulo 5 dizíamos que existem dois elementos básicos 
em uma linguagem como o MSX-BASIC: gramática e. vocabulário. Você já aprendeu um pouco 
do vocabulário, como LIST, RUN e SAVE. Também aprendeu um pouco de gramática. Como em 
muitas línguas, a gramática é mais complicada do que o vocabulário. As regras gramaticais que 
você aprendeu até agora a respeito do MSX-BASIC são: 

— Todas as declarações são fornecidas digitando algo do vocabulário do MSX-BASIC é 
pressionando RETURN; 

— Quando você digita uma declaração, em resposta, normalmente alguma coisa ocorre; 

— Os comandos são declarações que iniciam com um número de linha; 

— Um programa é um conjunto de comandos. À medida que você digita um programa, 
parece que o MSX-BASIC nada faz a respeito daquilo que foi digitado; 

- Para que o MSX-BASIC execute o programa, deve ser dado o comando RUN; 

Alguns comandos aparecem sozinhos na linha (como RUN), enquanto outros aparecem 
seguidos de outras informações (como em SAVE e LOAD);e 

— Você pode dar nomes aos programas. 

Editando Linhas de um Programa 

É uma boa idéia, neste momento, verificar se o programa “PRIMEI” está correto. Se você 
tiver passado pela primeira vez sem erros, parabéns; caso contrário, deverá descobrir o que está 
errado. Felizmente, com o MSX-BASIC isto é mais fácil do que percorrer todo o programa à 
procura de algo que pareça “estar errado”. 


49 


50 


MSX Guia do Usuário 


Processe o programa novamente até que ocorra uma eventual mensagem de erro Observe 
que, agora, a mensagem apresenta algo que o nosso “Erro de sintaxe” não apresentava- um 
numero. Por exemplo, se tiver ocorrido um erro de datilografia na linha 80, como: 

80 SCREEM 2 

teria aparecido a mensagem de erro: 

Syntax error in 80 


Assim, in 80 ’ indica que o erro de sintaxe aconteceu na linha 80. Esta Unha pode ser cor- 
rigida agora pela utilização dos comandos de edição aprendidos no capítulo anterior. 

O MSX -BASIC consegue identificar muitos erros, mas não todos. Por exemplo, altere a linha 
ou para. 

60 IF TIME < 10 THEN GOTO 60 


Obviamente isto não corresponde àquilo que você 
cessar o programa MSX-BASIC não vai perceber o “erro’ 
em vez de 2 (no Capítulo 8 você verá por quê). 


pensava em digitar. Entretanto, ao pro- 
; ele vai aguardar durante 0.2 segundos 


Mesmo que a mensagem de eiro do MSX-BASIC apresente um número de linha, esta não 

mcVÍ * ? rr a f* ela . qu - voce tenha cometido o erro de entrada - é aquela em que o 

MSX-BASIC ficou confuso, A medida que você continuar a programar, aparecerão mais mensagens 
de eno indicando que existe alguma coisa de errado em uma linha que parece perfeita Neste 

problema 1 ” 3 “ anteriores ver 56 M dgo que possa ter causado o 


Caso voce descubra que existe um eno em uma linha anterior à linha 50, verá que tem um 
outro problema: toda vez que digitar o comando LIST, aquelas linhas rolam da tela, e voeê rôo 
conseçe «hta-las. Existe uma solução simples: utilize o comando LIST apenas com o número de 
linha. Por exemplo, se a linha fosse 20 


20 CLD 


e você quisesse alterá-la, dê o comando: 


LIST 20 


N^te caso apenas a linha 20 será listada, ficando fácil a sua edição. Você pode dar um comando 
LIS r com uma faixa de numeros, e serão impressas apenas as linhas desta faixa. Por exemplo 
e qinsessemos ver apenas da linha 20 à 80, daríamos o comando 

LIST 20-80 

Você acabou de ver um exemplo da seguinte regra gramatical: 

- Alguns comandos podem ser dados sozinhos ou com outras informações. 


Entendendo um programa MSX-BASIC 51 

Como será visto adiante, muitos são os comandos que seguem esta regra. 

Reveja seu programa de maneira que ao processá-lo ele execute exatamente o que deve. 
O resultado correto deve ser armazenado em disco ou fita. 

As Partes de uma Linha 

Como já foi dito, um programa em MSX-BASIC é composto por linhas. A maneira mais 
fácil de explorar a gramática do MSX-BASIC é entender, primeiro, a gramática de uma única 
linha de programa. Após ter feito isto, o restante da gramática (e a maior parte do vocabulário) 
fica bem simples. 

Existem três partes em uma linha de um programa MSX-BASIC : 

— O número da linha; ' 

— O comando MSX-BASIC; 

— A informação pertinente ao comando. 

A ordem dos elementos na linha é fixa: primeiro é colocado o número da linha, em seguida vem 
o comando {com um espaço entre eles), e a última informação vem após o comando. 

Existem algumas restrições no MSX-BASIC para as linhas. Uma linha deve ter menos do que 
255 caracteres; isto não deve ser problemático a não ser que você tenha cordões muito longos ou 
deseja colocar vários comandos de uma mesma linha. 0 número da linha deve, ainda estar entre 
1 e 65529. 

As palavras ou os números que vêm após o comando são denominados argumentos do 
comando. Muitos comandos têm argumentos, mas não todos. Imagine o MSX-BASIC sendo a 
língua portuguesa, com os comandos agindo como verbos e os argumentos como substantivos 
e advérbios. 

À medida qüe você varre o programa, poderá descobrir outras regras gramaticais: 

— Alguns comandos têm mais do que um argumento; 

— Alguns argumentos são números, alguns são texto, e outros são ambos; e 
— Alguns argumentos são símbolos matemáticos como “= ” e 

Você pode ainda adicionar uma série de comandos ao seu vocabulário: REM, CLS, PRINT, IF 
THEN, SCREEN, FOR, CIRCLE, NEXT, LINE. Você conhecerá alguns destes comandos neste 
capítulo, e os outros nos capítulos que se relacionam com as funções que eles executam, 

O leitor mais astuto deve ter reparado que na lista anterior não estava incluída a palavra 
“TIME” que aparece nas linhas 50, 140 e 210. Assim é porque “TIME” não é um comando. 
Estas linhas utilizaram um pouco de taquigrafia, utilizado Dor todo programador BASIC: o 
comando LET não foi utilizado. Assim, a linha 50 poderia ser: 

50 LET TIME = 0 

O único comando que você pode deixar de lado ao programar é o comando LET; por uma 
questão de otimização de espaço. 


52 


MSX Guia do Usuário 


0 MSX-BASIC permite que você coloque mais do que um comando em uma mesma linha, 
desde que os comandos sejam separados por dois pontos e o primeiro comando não seja o REM. 
Por exemplo, as duas linhas 

230 PRINT "BOM" 

240 PRINT "LAGO" 

podem ser escritos em uma linha 

230 PRINT "BOM": PRINT "LAGO" 

Observe que nao foi utilizado um segundo número de linha: os dois comandos são considerados 
partes da mesma linha. A colocação de mais de um comando em uma mesma linha toma o 
programa mais difícil de ser lido. Porém, este me'todo é útil com o comando IF THEN, como você 
verá no Capítulo 9. 

Agora que você já conhece os componentes de uma linha, é útil a compreensão do relacio- 
namento entre os comandos e seu argumentos, A Tabela 7.1 relaciona o que você já conhece 
a lespeíto do vocabulário existente. Na tabela, o X indica que você já viu um exemplo do comando 
com o número especificado de argumentos; um asterisco (*) indica que o número especificado 
de argumentos é possível, mas você ainda não o viu. 

Na Tabela 7.1, REM e LET estão indicados como tendo apenas um argumento, apesar de 
que você pode pensar, ao olhar o programa, que eles podem ter diversos argumentos, No comando 
REM, tudo aquilo que segue o comando é ignorado pelo MSX-BASIC, de modo que se trata 
apenas de um argumento, independente mente do número de palavras. Todo comando LET é 
seguido por uma equação “alguma coisa é igual a alguma coisa”, como em “TIME = 0”, que 


Tabela 7.1 Comandos e seus argumentos. 



Sem 

1 

Comando 

Argumento 

Argumento 

LIST 

X 

X 

RUN 

X 

* 

CSAVE 


X 

SAVE 


X 

NEW 

X 


CLOAD 


X 

LOAD 


X 

REM 

* 

X 

CLS 

X 


PRINT 

* 

X 

SCREEN 

CIRCLE 


X 

NEXT 

LíNE 


X 

LET 


X 


Vários 

Argumentos 

* 

* 

* 

* 

* 

* 


♦ 

* 

X 


X 


Entendendo um programa MSX-BASIÇ 


53 


é considerado um argumento. IF e FOR não são incluídos na tabela porque se trata de comandos 
com diversas partes, de difícil classificação. 

Observe que os comandos PRLNT do programa têm apenas um argumento cada: tudo o 
que estiver dentro das aspas é um único argumento. Dizemos que as aspas delimitam o argumento, 
significando que indicam ao MSX-BASIC onde o argumento começa e onde termina. As aspas 
também delimitam o argumento “nome-do-programa” em CSAVE, SAVE, CLOAD e LOAD. 

Um aspecto da tabela que chama a atenção é como muitos dos comandos aceitam mais 
do que um argumento. Você verificará que a maioria dos comandos do MSX-BASIC pode ter 
diversos argumentos que executam tarefas diferentes. 

Exemplos de Comandos do MSX-BASIC 

Agora que você já conhece as partes de uma linha de programa, pode começar a aprender 
os comandos específicos que apareceram em seu primeiro programa. É útil ver agora os coman- 
dos que são mencionados neste capítulo, porque eles aparecem em quase todos os programas. 
Alguns destes comandos serão abordados com maiores detalhes em outros capítulos, 

A primeira linha do programa é um comando REM. REM é a representação de remark 
(observação), que é o propósito do comando REM. Você utiliza o comando REM pelo programa 
todo para informar o que as diversas partes do programa fazem. Por exemplo, a linha 10 em seu 
programa “PRIMEI” lhe informa a finalidade do programa como um todo, a linha 40 informa 
o que fazem as linhas 50 e 60, a linha 70 indica a linha 80, e assim por diante. 

Poderá parecer estranha a necessidade de fazer tantas observações a respeito do que está 
desejando ao escrever o programa. À proporção que seu programa se complica, você verá que 
vai utilizar maior número de “truques” de programação. Quanto maior o programa, mais dífícil 
será lembrar o truque ou tarefa executado por um determinado trecho do,programa. É neste 
momento que você valoriza as observações feitas com o comando REM. 

Se você deseja alterar a atuação de um programa ou corrigir algo que não está funcionando 
direito, levará muito tempo procurando a área que deve ser alterada. Se tivessem sido utilizados 
vários comandos REM para explicar a finalidade de cada seção e fossem explicados os truques, 
seria muito mais fácil ler o seu programa. A utilização do REM desta maneira é denominada 
documentação do programa. 

Observando o processamento do programa você poderá ter adivinhado o propósito do 
comando PRINT, que imprime seus argumentos na tela. Como já foi visto, o argumento do 
comando PRINT é delimitado pelas aspas. Na linha 30 temos um comando PRINT típico; tudo 
o que estiver entre aspas (sem incluí-las) aparecerá na tela quando o MSX-BASIC executar o 
comando PRINT. 

Como foi anteriormente visto, a linha 50 na verdade tem um comando LET, apesar de 
ter sido omitido o termo LET, como em quase todos os programas em BASIC. O argumento 
que vem depois do número da linha é formado pelo nome da variável, um sinal de igual (=), e 
um valor. As variáveis representam os valores numéricos, da mesma forma que na álgebra ele- 
mentar, e são descritas em maiores detalhes no Capítulo 8. Por enquanto, o que é necessário 
compreender é que o comando LET altera os valores da variável. 


54 


MSX Guia do Usuário 


Organização do Programa 

Como você já viu, o MSX-BASIC executa as linhas de um programa na ordem crescente 
dos números das linhas. Uma vez que você deseja que o MSX-BASIC execute certas instruções 
antes de outras, o número dado para cada linha é muito importante. 

Um padrão adotado pelos programadores BASIC é o de numerar as linhas em intervalos 
de 10, em lugar de 1, 2, 3, 4 e assim por diante. A razão principal para este procedimento é a 
necessidade posterior que pode haver em acrescentar comandos ao meio do programa, e esta é 
a maneira de deixar espaço reservado para uma eventualidade deste tipo. Por exemplo, se você quiser 
acrescentar uma linha entre as linhas 20 e 30, esta poderá receber o número 25. A linha 25 pode 
ser digitada em qualquer lugar vazio da tela; ao dar o comando LIST da próxima vez, você a verá 
entre as linhas 20 e 30. 

A maioria dos programas, entretanto, não é processada, do começo ao fim, linha por linha. 
E comum que os programas sofram desvios, significando que algumas linhas são puladas de acordo 
com determinadas condições. Por exemplo, você pode escrever um programa que faça uma 
pergunta sim ou não. Se a resposta for sim deverão ser executadas certas linhas do programa, se 
a resposta for não, serio executadas outras linhas do programa. 

Para tomar estas decisões, devem ser utilizados os comandos IF e GOTO. Eles são expli- 
cados em maiores detalhes no Capítulo 9, mas será interessante ver um exemplo aqui. Limpe a 
memória dando o comando NEW. Digite o seguinte programai 

10 REM Exemplo da utilizacao de desvio 
20 UNE INPUT "Entre $ ou N: QUESTAOS 

30 IF RESPOSTAS = "$" TH EN GOTO 70 
40 IF RESPOSTAS - "N" THEN GOTO 90 
50 PRINT "Voce nao inseriu $ ou N" 

60 GOTO 100 

70 PRINT "Voce digitou $" 

80 GOTO 100 

90 PRINT "Voce digitou N" 

100 END 


Este programa deve ser salvo em fita ou disco com o nome “SOUNH 
OU NÃO”). 


(representando “SIM 


Processe o programa e insira a letra S quando o programa pergunta “Insira S ou N:” em 
seguida pressione RETURN (certifique-se de que esteja digitando S e não s). O programa informará 
que você digitou “S”. 


Você já sabe o que a linha 10 faz: nada. O comando LINE INPUT da linha 20 imprime 
a mensagem delimitada pelas aspas e, em seguida, aguarda que sejam teclados alguns caracteres 
seguidos de RETURN. Em seguida dá à variável QUESTAOS o valor do caractere teclado (você 
verá mais a este respeito no próximo capítulo); em relação ao LINE INPUT o Capítulo 10 tratará 
disso, por ora, assuma que RESPOSTAS contém a letra que você teclou. 

Nas linhas j 0 e 40 existe o comando IF THEN (é mais apropriado denominar estes coman- 
dos de “IF THEN” do que de “TF”, porque todo comando IF tem um THEN). O comando IF 


Entendendo um programa MSX-BASIC 


55 


THEN é denominado comando de desvio condicional, já que o MSX-BASIC desvia para outra linha 
caso uma determinada condição seja atendida. A linha 30 informa ao MSX-BASIC: “Se a pessoa 
deu entrada ao S, pule todas as linhas até a linha 70.” O comando GOTO informa ao MSX-BASIC 
em que ponto deve ser iniciada a execução das linhas se a condição entre o IF e o THEN for 
verdadeira. 

A lógica seguida pelo programa é indicada na Figura 7.1 . Resumidamente, a linha 30 verifica 
se você entrou com S e o envia à Imha 70 em caso positivo; a linha 40 verifica se você entrou 
com N e o envia à linha 90 em caso positivo; caso as condições das linhas 30 e 40 náo sejam 
verdadeiras, você acaba caindo na linha 50. 

Como pode ver pelas linhas 60 e 80, é possível utilizar um comando GOTO sem um 
comando IF. Como você provavelmente já adivinhou, um comando GOTO sem o IF é denomi- 
nado desvio incondicional. A razão de se utilizar o GOTO na linha 60 é para impedir a execução 
da linha 70 após a linha 50. Após a impressão de “Você não entrou com S ou N”, o programa 
já terminou e não há necessidade de nova impressão. Assim, você deve evitar as linhas que 
imprimem Você digitou S” e “Você digitou N”; o desvio incondicional contorna estas linhas 
e vai para a linha 100. 

A hnha 100 tem o comando END, que você ainda não viu. A única coisa que o comando 
END faz é o de ordenar ao MSX-BASIC que pare de processar o programa. Você deve lembrar 
que o seu programa PRIMEI não terminou com um comando END. Isto é correto, uma vez 
que o MSX-BASIC sabe que deve parar quando não tem mais comandos para executar. Neste 
programa, entretanto, havia a necessidade de enviar o programa para algum lugar após a impressão 
de uma das três mensagens. O comando END é um fim adeouado para qualquer problema, mas 
não é obrigatório . . . 

Este programa é um exemplo simples da utilização dos comandos IF THEN e GOTO em 
seus programas. Como será visto no Capitulo 9, o comando GOTO pode enviá-lo para linhas 
anteriores. Programas mais longos conterão dezenas de GOTO que o enviarão para o pro- 
grama todo. 



Figura 7.1 Diagrama esquemático do programa SOUN. 










CAPÍTULO 

8 


VARIÁVEIS, CONSTANTES, 
FUNÇÕES E ARITMÉTICA 



Como podemos observar pelo titulo deste capítulo, ele cobre diversos tópicos ao fim dos 
quais, você estará sabendo quase tudo sobre a gramática do MSX-BASIC, e saberá bem mais 
sobre o vocabulário, Os Capítulos 10 a 16 são organizados com base nos comahdos descritos 
neste capítulo. 

Variáveis e constantes são os dois últimos conceitos de importância que você deve aprender 
no MSX-BASIC. São os argumentos utilizados com maior freqüência nos comandos. As funções 
são similares aos comandos, mas não aparecem no começo da linha como os comandos. Como 
você já deve ter adivinhado, aritmética é exatamente igual àquela que você aprendeu no primário: 
adição, subtração etc. 


Variáveis e Constantes 


Variável é um lugar onde você pode armazenar dados. Os dados podem ser números ou 
letras. Por exemplo, no programa “PRIMEI”, TIME e I eram variáveis que continham números 
(TIME é uma vanavel diferente, como você verá mais adiante). A variável que contém um número 
é chamada variável numérica. No programa SOUN, RESPOSTAS é uma variável que contém 
texto. Em BASIC um trecho de texto é denominado série de caracteres; assim, RESPOSTAS 
é uma variável série. 

Pense na variável como uma caixa de correio. A etiqueta da caixa é o nome dado à variável. 
Podemos colocar dados na caixa, os quais podem ser retirados e lidos. Você pode alterar os dados 
da caixa pela colocação de dados novos. Se você estiver familiarizado com a álgebra elementar, as 
variáveis do MSX-BASIC são idênticas às variáveis algébricas. Você pode recordar as duas variáveis 
mais comuns em suas aulas de álgebra: X e Y. Uma constante é algo cujo valor não se altera. Por 
exemplo, o numero 15 e uma constante numérica: 15 significa sempre 15. Quando você expli- 
citamente define um texto, ele é uma constante série. No programa “SOUN”, a série da linha 90 
que era “Você digitou N” é uma constante. As constantes série são sempre delimitadas por aspas. 
Constantes não têm nomes — apenas valores. 

56 


Variáveis , Constantes, Funções e Aritmética 


57 


0 MSX-BASIC permite que você dê nomes para as suas variáveis. O nome de uma variável 
pode ter qualquer comprimento, mas o MSX-BASIC olha apenas os dois primeiros caracteres. O 
primeiro caractere deve ser uma letra, e os demais podem ser letras ou números (excluindo-se 
os sinais de pontuação). 

TIPOS DE VARIÁVEIS E CONSTANTES 

No MSX-BASIC existem quatro tipos de variáveis e constantes: inteiros, números reais de 
precisão simples, números reais de precisão dupla e séries. (Caso você tenha esquecido, um número 
real é aquele que tem um ponto decimal.) Cada tipo é diferente; entretanto, a única diferença 
entre precisão simples e precisão dupla nos números reais é a precisão do número (precisão de 
6 dígitos ou precisão de 14 dígitos) e a quantidade de memória que ocupam (2 "bytes ou 
4 bytes). 

Existe um limite imposto pelo MSX-BASIC à faixa que um número pode tomar. Os inteiros 
são números entre -32768 e 32767. Números reais devem estar entre IIP 64 e 10 63 . 

As séries são armazenadas na memória, um caractere por byte. Como a memória dos compu- 
tadores é inerentemente numérica, e não em forma de texto, cada caractere é associado a um 
número. Os números variam de 0 a 255. 0 padrão que inter-relaciona uma letra a um número 
é denominado código ASCII (esta é uma sigla arcaica que não tem sentido hoje). 0 Apêndice C 
mostra os códigos ASCII para os caracteres que seu computador MSX pode gerar. 

NOMES E VALORES DE VARIÁVEIS 

À medida que o MSX-BASIC executa o seu programa ele pode saber que tipo de variável 
está sendo utilizada, bastando olhar o símbolo que se encontra no fim do nome da variável. 


Tabela 8.1 Símbolos para os tipos de variáveis. 


Tipo de Variável 

Símbolo 

Exemplos 

Inteiro 

% 

Tela%, FAIXA% 

Precisão simples real 


GG1 !, GENTE! 

Precisão dupla real 

# ou vazio 

ESTAÇÃO#, BOLA 

Série 

S 

RESPOSTAS, ANÚNCIOS 


A Tabela 8.1 mostra os últimos caracteres para cada tipo de variável. Observe que, se não for 
colocado um símbolo no fim do nome da variável, o MSX-BASIC assume que você está utili- 
zando uma variável de dupla precisão. 

Existe outra regra que deve ser lembrada ao se escrever um programa: as variáveis não 
podem ter o mesmo nome que as palavras reservadas do MSX-BASIC que é composto por tudo 
que está no vocabulário do MSX-BASIC. Esta regra impede que o MSX-BASIC confunda algo 
que você esteja utilizando como uma variável, com um comando, uma função etc. De fato, o 
nome de suas variáveis não pode conter palavra alguma reservada do MSX-BASIC, nem no meio 
deste nome. A Figura 8.1 relaciona as palavras reservadas. 


58 


MSX Guia do Usuário 


ABS 

DSKI$ 

AND 

d$ko$ 

ASC 

ELSE 

ATN 

END 

ATTR$ 

EOF 

AUTO 

EQV 

BASE 

ERASE 

BEEP 

ERL 

BIN$ 

ERR 

BLOAD 

ERROR 

BSAVE 

EXP 

CALL 

FIELD 

CDBL 

FILES 

CHR$ 

FIX 

CINT 

FN 

CIRCLE 

FOR 

CLEAR 

FPOS 

CLOAD 

FRE 

CLOSE 

GET 

CLS 

GO 

CM D 

GOSUB 

COLOR 

GOTO 

CONT 

HEX$ 

COPY 

IF 

COS 

IMP 

CS AVE 

INKEYS 

CSNG 

INP 

CSRLIN 

INPUT 

CVD 

1NSTR 

CVI 

INT 

CVS 

IPL 

DATA 

KEY 

DEF 

KILL 

DEFDBL 

LEFT$ 

DEFINIT 

LEN 

DEFSNG 

LET 

DEFSTR 

lfiles 

DELETE 

LINE 

DIM 

LIST 

DRAW 

LLIST 

DSKF$ 

LOA D 


LOC 

RESUME 

LOCATE 

RETURN 

LOF 

RIGHT$ 

LOG 

RND 

LPOS 

RS ET 

LPRINT 

RUN 

LSET 

SAVE 

MAX 

SCREEN 

MERGE 

SET 

MIDS 

SGN 

MKD$ 

SIN 

MKI$ 

SOUND 

MKS$ 

SPACES 

MOD 

SPC 

MOTOR 

SPRITE 

NAME 

SQR 

NEW 

STEP 

NEXT 

STICK 

NOT 

STOP 

OCTS 

STR$ 

OFF 

STRIG 

ON 

STRING$ 

OPEN 

SWAP 

OR 

TAB 

OUT 

TAN 

PAD 

THEN 

PAINT 

TIME 

PDL 

TO 

peek 

TROFF 

PLAY 

TRON 

POINT 

USING 

POKE 

USR 

POS 

VAL 

PRESET 

VARPTR 

PRINT 

VDOP 

PSET 

VPEEK 

PUT 

VPOKE 

READ 

WAIT 

REM 

WIDTH 

RENUM 

XOR 

RESTO RE 



Figura 8. 1 Palavras reservadas do MSX-B ASIC. 


Variáveis, Constantes, Funções e Aritmética 


59 


Veja novamente o programa “SOUN 7 ’; 

10 REM Exemplo da utilizacao de desvio 
20 LINE INPUT "Digite S ou N:" ; RESPOSTA$ 
30 IF RESPOSTAS - "S" THEN GOTO 70 
40 IF RESPOSTAS = "N" THEN GOTO 90 
50 PRINT "Voce nao digitou S ou N" 

60 GOTO 100 

70 PRINT "Voce digitou S" 

80 GOTO 1 00 

90 PRINT "Voce digitou N" 

100 END 


Na linha 20, “Digite Sou N:”é uma constante e RESPOSTAS é uma variável série (agora 
você vê porque o sinal S foi utilizado neste programa). Quando o comando LINE INPUT é 
executado, o MSX-BASIC lê o teclado até que seja pressionada a tecla RETURN para em seguida, 
colocar os caracteres teclados na variável série que você nomeou. Você é obrigado a utilizar uma 
variável série com o comando LINE INPUT. Na linha 30, RESPOSTAS é, evidentemente, ainda 
uma variável e S uma constante. O comando IF THEN compara o conteúdo da variável 
RESPOSTAS com a constante S, 

A maioria dos comandos que você viu com constantes pode aceitar variáveis. Por exemplo 
o programa que segue age exatamente da mesma forma que o programa “SOUN”: 


10 

20 

30 

40 

50 

60 

70 

80 

90 

100 

110 

120 

130 

140 

150 

160 

170 


REM Exemplo da utilizacao de variaveis 
REM em lugar de costantes no 
REM programa SOUN 
S RESPOSTAS - "S" 

N RESPOSTAS = "N" 

NAOSOUN$ = "Voce nao digitou S ou N" 

SMGS$ = "Voce digitou S" 

NMSG$ = "Voce digitou N" 

LINE INPUT "Digite S ou N: RESPOSTAS 

IF RESPOSTAS = SR ESPOSTAS THEN GOTO 140 

IF RESPOSTAS - NR ESPOSTAS THEN GOTO 160 

PRINT NAOSOUNS 

GOTO 170 

PRINT SMSGS 

GOTO 170 

PRINT NMSG$ 

END 


Observe que as constantes SRESPOSTAS, NRESPOSTAS, NAOSOUNS, SMSGS e NMSGS 
são definidas das linhas 40 até 80 e utilizadas no resto do programa. Este não é um método 
padronizado de programação mas um bom exemplo de como é possível utilizar variáveis em 
muitos locais de seu programa. 



60 


MSX Guia do Usuário 


O erro mais comum que se comete ao escrever um programa MSX-BASIC é esquecer de 
que o MSX-BASIC apenas olha para as duas primeiras letras de uma variável, Esta regra deve ser 
lembrada ao nomear uma variável nova. Por exemplo, observe o seguinte programa, bastante 
simples: 

10 REM Exemplo do nome de uma variavel comum 

20 REM fornecida por engano 

30 VAR1 = 5 

40 VAR2 = 6 

50 PRINT VAR1 

60 PRINT VAF2 


À primeira vista você pode achar que o programa vai imprimir “5” e depois “6”. Em lugar disto, 
imprime “6” e depois “6” já que o MSX-BASIC reconhece apenas a parte “VA” do nome das 
variáveis. 

Quando o programa é processado pelo MSX-BASIC, tudo se passa como se você tivesse 
escrito: 


10 REM Exemplo do nome de uma variavel comum 

20 REM fornecida por engano 

30 VA = 5 

40 VA = 6 

50 PRINT VA 

60 PRINT VA 

Na linha 50, VA é igual a 6. 

Se a utilização do caractere no fim do nome das variáveis se tomar monótona, o comando 
DEF pode ser utilizado para informar ao MSX-BASIC que todas as variáveis que iniciam com 
uma determinada letra representam um determinado tipo de variável. Os comandos são DEF 
DBL, DEF INT, DEF SNG e DEF STR para reais de precisão dupla, inteiros, reais de precisão 
simples, e séries de caracteres. Você dá o comando com uma letra ou um grupo de letras. Por 
exemplo. 


10 DEF SNG C-E 
20 DEF INT I 

informa ao MSX-BASIC que toda variável que tem como primeira letra C, D ou E será um número 
real de precisão simples, e toda a variável em que a primeira letra seja I é inteira. 

Existem variáveis especiais que o MSX-BASIC define paia você. Elas serão mencionadas 
no decorrer do próximo capítulo, embora você já conheça uma delas: TIME. TIME é uma 
variável numérica a qual se soma 1 a cada 1/50 de segundo. Você pode usar TIME em qualquer 
ponto de seu programa. 


Variáveis, Constantes , Funções e Aritmética 


61 


Isto explica a utilização de TIME no programa “PRIMEI”: ela foi colocada em 0, espe- 
rando até que ficasse igual a 100. Já que ela é atualizada a cada 1/50 de segundo, será 2 segundos. 
Nas linhas 50 e 60 deste programa tem-se; 

50 TIME = 0 

60 IF TIME < 100 THEN GOTOSO 

Quando o MSX-BASIC chega à linha 60, verifica-se que o valor de TIME é menor do que 
100. Uma vez que seu computador MSX é muito rápido, a primeira vez que o MSX-BASIC chega 
a 60, TIME provavelmente estará em 0. Assim, o MSX-BASIC vai até a linha 60, reexecutando a 
linha. Até que o valor de TIME chegue a 100, 0 MSX-BASIC continuará reexecutando a linha 60. 
Quando TIME atingir 100, o MSX-BASIC observa que “TIME < 100” é falso e continua até 
alinha 70. 

Se você estiver confuso sobre o procedimento TIME, processe o seguinte programa: 

10 R EM Experimentando TIME 
20 PRINT"Aqui vem TIME” 

30 TIME = 0 

40 PR1NT TIME 

50 REM Passaram 5 segundos? 

60 IF TIME < 250 GOTO 40 
70 PRINT "Passaram os seus 5 segundos" 


MATRIZES 

Em certas situações é conveniente termos um conjunto de variáveis que possam ser mani- 
puladas com um único nome. Uma matriz tem esta característica. Podemos ter matrizes de séries 
de caracteres, números reais de precisão simples, números reais de precisão dupla ou inteiros. 
Cada elemento da matriz tem um valor próprio e pode ser tratado como uma variável separada. 

A matriz é definida com o comando DEM. A estrutura mais simples deste comando é 
DIM nomevar(n) 

Nesta estrutura, nomevar é o nome dado para as variáveis de sua matriz. O n representa 
o elemento de maior ordem da matriz. Toda matriz inicia com a numeração em 0, de maneira 
que, na verdade, é criado um conjunto de “n+1” elementos, com o comando DIM. Por exemplo, 
para definir uma matriz de 15 elementos denominada LL, deve ser dado o comando 

10 DIM L L( 1 4) 

É possível dar comandos em seu programa MSX-BASIC que pode utilizar estas variáveis, como em 

50 LL(5) = 23.5 
60 N = 7 
70 LL(N) = 9.1 

A linha 50 assume a variável IXfS), enquanto a linha 70 assume a variável LL(7). 


62 


MSX Guia do Usuário 


Por ora vimos apenas matrizes com um conjunto de elementos, conhecidas também como 
unidimensional. É possível termos matrizes com mais do que uma dimensão, bastando acrescen- 
tá-las ao comando DIM. Por exemplo, para criar uma matriz denominada QN com 12 linhas e 
17 colunas, dê o comando 

120 DIM QN(12, 17) 

Para obter uma determinada variável desta matriz, devem ser fornecidas as duas variáveis da matriz. 
180 QN(7,5) = 3: PRINT QN(7,5) 


UTILIZANDO OUTROS SISTEMAS NUMÉRICOS 


O MSX-BASIC pode manipular constantes com diversos tipos de notações. Apesar de a 
maioria das pessoas ter mais familiaridade com a notação decimal, muitos conhecem a notação 
cientitica, algumas vezes chamada de forma exponencial. Um número representado na notação 
científica é formado por um inteiro ou número real à esquerda (chamado mantissa), seguido 
por um “E” e em seguida por um inteiro (o expoente). O MSX-BASIC interpreta este número 
como 1 0 elevado ao valor do expoente e em seguida multiplicado pela mantissa. 


Por exemplo, o número “4.732E5” é o mesmo que 47,320. Um número em notação 
cientifica com um “E” é interpretado pelo MSX-BASIC como sendo um número de precisão 

simples. Para especificar um número de precisão dupla, utilize um “D” no luear do “E” ícomo 
“4.732D5”). K 


Uma vez que o computador pensa na forma binária, às vezes é conveniente exprimir os 
números na notação binária, octal ou hexadecimal. Se estas palavras não têm significado para 
você, sinta-se à vontade para passar à próxima seção. 

Se você desejar expressar constantes na forma binária, poderá antepor um “&B” ao 
número. Para especificar um octal, utilize “&0”, e para especificar um hexadecimal utilize 
“&H”. As linhas que seguem estabelecem para a variável VG o número 431 (decimal): 

VG = &B1 101011 11 (Notação Binária) 

VG = &0657 (Notação Octal) 

VG = &H1AF (Notação Hexadecimal) 


Funções 

A função é uma operação que processa um número ou uma série de caracteres. Podemos 
considerar as funções como subprogramas; são semelhantes às funções matemáticas. As funções 
têm argumentos, assim como os comandos, mas os argumentos de uma função são colocados entre 

parenteses após o nome da função. Algumas funções tem apenas um argumento, outras têm mais 
de um. 


Variáveis, Constantes, Funções e Aritmética 


63 


Por exemplo, você deve estar lembrando da raiz quadrada em suas aulas de matemática. A 
raiz quadrada de um número tem como resultado um outro número; ao multiplicar o segundo 
número por ele próprio, teremos o primeiro número. Em MSX-BASIC, utilizamos a função SQR 
para encontrar a raiz quadrada de um número. A estrutura da função SQR é 

SQR(n) 

0 número do qual queremos encontrar a raiz quadrada é (n). Por exemplo: 

30 B = SQR(A) 

Neste caso, B assume o valor da raiz quadrada de A. 

Uma função pode $er utilizada em todos os locais em que se pode utilizar uma constante, 
uma vez que uma função sempre tem um valor, da mesma maneira que uma constante. De fato, 
podemos utilizar uma função dentro de outra função. Por exemplo, se desejai que J1 seja o 
logaritmo de seno de J2, utilize o comando LET: 

50 LETJ1 = L0G{SIN(J2)) 

Ao encontrar esta expressão o MSX-BASIC resolve primeiro “SIN(J2)” para em seguida 
calcular o logaritmo do resultado. 

No MSX-BASIC existem funções matemáticas para quase todas as suas necessidades. Elas 
estão relacionadas na Tabela 8.2. Existem ainda muitas funções de série, relacionadas na Tabela 8.3. 
A Tabela 8.4 relaciona as funções que ajudaram na conversão de números para a séries e vice-versa. 


Tabela 8.2 Funções matemáticas do MSX-BASIC. 


Função 

Significado 

ABS(NÚMERO) 

Valor absoluto do NÚMERO 

ATN(NÜMERO) 

Arcotangente, em radianos. 

COS(RADNÚMERO) 

Coseno, em radianos. 

EXP(NÚMERO) 

Expoente (e elevado à potência de NÚMERO), 

FIX(NÚMERO) 

Retoma o NÚMERO retirando toda sua parte fracionária. 

INT(NÚMERO) 

Faz o arredondamento para o primeiro inteiro menor 
que NÚMERO. 

LOG(NÚMERO) 

Logaritmo natural (base e) do NÚMERO. 

SGN(NÚMERO) 

Retoma +1 caso NÚMERO seja positivo, -1 caso 
NÚMERO seja negativo e 0 quando NÚMERO for 0. 

SIN(RA DNÚMERO) 

Seno, em radianos. 

SQR(NÚMERO) 

Raiz quadrada do NÚMERO. 

TAN(RADNÜMERO) 

Tangente, em radianos. 


64 


MSX Guia do Usuário 


Tabela 8.3 Funções série do MSX-BASIC. 

Função 

Significado 

INSTR(INICIO , SÉRIE 1 5 , 

Encontra a posição da primeira aparição de série 2$ 

SÉRIE2S) 

em série IS, partindo da posição INÍCIO 
(o argumento INÍCIO é opcional). No caso de não 

LEFT $(SÉRIE$, 

se encontrar série 2$ em série 1$ o resultado é 0 

Cria uma série de COMPRIMENTO caracteres de 

COMPRIMENTO) 

comprimento com os caracteres mais à esquerda 
de SÉRIES. 

LEN(SÉRIE$) 

Fornece o comprimento de uma SÉRIES. 

MJDUSÉRIES, INICIO, 

Retoma uma série com COMPRIMENTO caracteres 

COMPRIMENTO) 

de comprimento, iniciando na posição INÍCIO; 

RIGHTS (SÉRIE $ , 

COMPRIMENTO é um argumento opcional. 

Cria uma série de COMPRIMENTO caracteres de 

COMPRIMENTO) 

comprimento com os caracteres à direita 
de SÉRIES. 

SPACES (C OMPRIMEN T 0) 

Retoma uma série COMPRIMENTO caractere 
de espaço. 

ST RINGS (COMPRIMENTO, Gera uma série com COMPRIMENTO repetições 

CARACTERES) 

do caractere CARACTERES. 

Tabela 8.4 

Funções de conversão do MSX-BASIC. 

Função 

Significado 

ASC (SÉRIES) 

Retoma o código ASCII do primeiro caractere de 
SÉRIES. 

BINS(NÚMERO) 

Retoma uma série que representa NÜMERO em binário. 

CDBL(NTJMERO) 

Um número real de dupla precisão. 

CHR$(NÚMERO) 

Retorna uma série de comprimento 1 do caractere cujo 
código ASCII é NÚMERO. 

CENT(NÚMERO) 

Retoma um inteiro. 

C SN G(NÚMER 0) 

Retoma um número de simples precisão. 

HEX$(NÚMERO) 

Retoma uma série, que representa NÚMERO 
em hexadecimal. 

OCTS(NÚMERO) 

Retoma uma série que representa NÚMERO 
em octal. 

STRS(NÜMERO) 

Retoma uma série que representa NÚMERO 
como um número real. 

VA USÉRIES) 

Retoma um número real de dupla precisão que representa 
o número armazenado em SÉRIES. 


Variáveis, Constantes, Funções e Aritmética 


65 


Apesar de muitas desta funções serem auto-explicativas, uma exemplificação ajuda a escla- 
recer sua utilização. 

10 REM Amostra das funcoes MSX-BASIC 
20 REM Primeiro, as funcoes numéricas 
30 A = 5 
40 B = 10 
50 C = -3.7 
60 D = .8245 

70 PRINT "O valor absoluto de " ; C; "e" ; ABS(C) 

80 PRINT "O arco- tangente de A; "e' r ; ATN(A) 

Ô0 PRINT "O co-seno de D; 'V' ; COS(D) 

100 PRINT "O exponencial de A; "e"; EXP(A) 

110 PRINT "O FIX de C: "e" ; FIX(C) 

120 PRINT "O FIX de B; "e"; FIX(B) 

130 PRINT "O INT de B; "e"; INT(B) 

140 PRINT "O INT de C; "e"; INT(C) 

150 PRINT "O logaritmo de "; A; "e"; LOG{A) 

160 PRINT "O sinal de A; "e"; SGN(A) 

170 PRINT ”0 sinal de C; "e";SGN(C) 

180 PRINT "O seno de D; "e"; SIN(D) 

190 PRINT "A raiz quadrada de A; “e"; SQR(A) 

200 PRINT "A tangente de "; D; "e"; TAN(D) 

210 REM em seguida, as funcoes série 
220 X$ = "rainha de copas” 

230 COMPRIMENTO = 6 
240 INICIO = 4 

250 SÉ RI El $ = "como ela brilha” 

260S£7?/£2$="ela" 

270 CARACTER E$= "g” 

280 PRINT "INSTR exemplo resulta ***"; 

INSTRdNICIO, SÉRIE 1$, SÉRJE2$); "***" 

290 PRINT ”LEFT$ exemplo resulta ***"; 

LEFT$(X$,COMPRI MENTO); "***" 

300 PRINT "LEN exemplo resulta ***"; 

LEN(X$); "***'' 

310 PRINT ”MID$ exemplo resulta ***"; 

MID$(X$, INICIO, COMPRIMENTO);"***" 

320 PRINT "RIGHT$ exemplo resulta ***”; 

RIGHT$(X$,COMPRI MENTO); "***" 

330 PRINT "SPACE$ exemplo resulta ***"; 

SPACE$(COMPRIMENTO); ”***" 

340 PRINT "STRINGS exemplo resulta ***"; 

STRING${COMPRI MENTO, CARACTERES); 

350 REM por fim, as funcoes de conversão 



66 


MSX Guia do Usuário 


360 X$ = "d" 

370 PRINT ”0 valor em ASCII de X$; "e”; ASC(X$) 

380 NUMERO = 100 

390 PRINT "O valor binário de”; NUMERO; "e"; BIN$(NUMERO) 

400 PRINT "CHR$ exemplo resulta ***"; 

CHS(NUMERO); "***" 

410 PRINT "O valor hexadecimal de 
NUMERO; "e"; HEXS(NUMERO) 

420 PRINT ”0 valor octal de"; NUMERO: 

"a"; OCTS(NUMEROC) 

430 PRINT "O vator decimal de”; 

NUMERO; "e"; STRS(NUMERO) 

440 X$ = "-34.99" 

450 PRINT "VAL exemplo resulta”; VAL(XS) 

A impressão deste programa resulta no seguinte (certifique-se de que está entendendo): 

O valor absoluto de -3,7 é 3.7 
O arcotangente de 5 é 1 .3734 
O coseno de .8245 é .678924 
O exponencial de 5 é 148.413 
O FIX de -3.7 é -3 
O FIX de 10 é 10 
O INT de 10 é 10 
O INT de -3.7 é -4 
O logaritmo de 5 é 1.60944 
O sinal de 5 é 1 
O sina! de -3.7 é -1 
O seno de .8245 é .734208 
A raiz quadrada de 5 é 2.23607 

A tangente de .8245 é 1 .08143 
INSTR exemplo resulta *** 

LEFT$ exemplo resulta ***rainha *** 

LEN exemplo resulta ***15 *** 

MID$ exemplo resulta ***ha da *** 

RIGHTS exemplo resulta ***copas*** 

SPACE$ exemplo resulta *** *** 

STRING$ exemplo resulta ***gggggg *** 

O valorem ASCII de d é 100 
O valor binário de 100 é 1100100 
CHR$ exemplo resulta ***d *** 

O valor hexadecimal de 100 é 64 
O valor pctal de 100 é 144 
O valor decimal de 100 é 100 
VAL exemplo resulta -34.99 



Variáveis , Constantes, Funções e Aritmética 


67 


Existem mais duas funções que não apresentam a mesma facilidade para serem descritas 
que aquelas que acabamos de ver. As duas funções são M1DS = e RND. Apesar de terem muito 
em comum, a função MID$ = é diferente da função MlDS. O nome da função MIDS - , demonstra 
que a função MIDS é utilizada do lado esquerdo de um comando LET. De fato, a função MIDS = é 
a única função que pode aparecer do lado esquerdo de um comando LET. Lembre-se de que o 
comando LET iguala a variável que está do lado esquerdo do sinal de igual ao valor da direita. Se 
a função MIDS for utilizada do lado esquerdo do sinal de igual, o MSX-BASIC é informado que 
deve alterar o valor de uma parte da série. 

O programa que segue mostra como se Utiliza a função MIDS = ; 

10 REM Exemplo de MID$ = • 

20 /KS£fíiE$ - "aaaaaaaaaa" 

30 B SÉRIES = "bbbbbbbbbb" 

40 MID$(ASÉfl/£$ 3, 4} = B SÉR1E$ 

50 PRINTA SÉfífES 

O programa imprime: 

aabbbbaaaa 

A função RND gera um número randômico entre 0 e 1. Isto será útil quando você quiser 
simular um evento randômico, como jogar um dad. Existem três tipos diferentes de argumentos 
numéricos que podem ser fornecidos para a função RND: 

— Qualquer número positivo fará com que seja gerado um número randômico de precisão 
dupla, entre 0 e 1 . 

— Qualquer número negativo fará com que o gerador de números randômicos inicie uma nova 
lista de números randômicos; isto é denominado semeadura. Se você não semear o gerador 
de números randômicos cada vez que você processa um programa, os números randômicos 
gerados serão os mesmos (o que, sem dúvida, contradiz o propósito dos números 
randômicos). 

— Caso você utilize o argumento 0, o gerador lhe dará o último número randômico anterior- 
mente recebido do gerador. 

O programa abaixo mostra como utilizar os números randômicos: 

10 REM Exemplo de numero randomico 
20. FOR ! = 1 TO 10 
30 PRINT RND(%) 

40 NEXT I 

50 REM Faca nova semeadura no gerador 
60 X= RND(-TIME) 

70 FOR I = 1 TO 10 
80 PRINT RND(5) 

90 NEXT I 

Uma vez que a variável TIME se altera a cada 1/50 segundo, semear o gerador de números 
randômicos com RND(-TIME) é uma boa maneira de gerar números randômicos. 



68 


MSX Cuia do Usuário 


Aritmética do MSX-BASIC 

Já que o MSX-BASIC é utilizado com frequência para executar operações de matemática 
ele possui um número grande de operações matemáticas. Estas operações se enquadram em duas 
categorias, numéricas e lógicas. Operações numéricas são aquelas que você aprendeu no primário 
e no ginásio (adiçao, subtração etc.). Operações lógicas são aquelas utilizadas para comparar dois 
elementos e determinar se a comparação é verdadeira ou falsa. 

A Tabela 8.5 relaciona as operações numéricas. Como pode ver, quase todas são diretas e 
provavelmente familiares para você. Os operadores menos familiares para a maioria das pessoas 
sao: di visão inteira, resto inteiro e exponenciação. 


Tabela 8.5 Operadores numéricos do MSX-BASIC. 

Operador Significado 

+ Adição 

Subtração 

* Multiplicação 

/ Divisão 

\ Divisão com resultado inteiro 

MOD Resto inteiro de uma divisão 

Exponenciação 

A utilização do operador de divisão com resultado inteiro sempre resulta em um inteiro O 
resultado desta drnsao e o mesmo que o da divisão real, com a parte fracionária eliminada. Resto 
de um inteiro (MOD) e o resto da divisão entre dois inteiros. Quando colocamos o operador de 

exponenciação entre dois números, o resultado será o primeiro número elevado ao segundo 
numero, e 

As operações numéricas são demonstradas no programa que segue: 

10 REM Exemplos de operacoes 
20 X - 3.4 
30 Y = 6.6 
40 PRINT X + Y 
50 PRINT X - Y 
60 PRINT X * Y 
70 PRINT X/Y 
80 Zl = 64 
90 22 - 1 5 
100 PRINT Zl \ Z2 
110 PRINT Zl MODZ2 
120 PRINT X A Y 


Variáveis, Constantes , Funções e Aritmética 


69 


O programa imprime: 

10 

-3.2 

22.44 

.515152 

4 

4 

3219.29 

Podemos utilizar o parêntese para agrupar partes de declarações matemáticas. O parêntese 
tem o mesmo significado para o MSX-BAS1C que para a matemática usual: as operações dentro 
do parêntese são executadas como entidades separadas. No exemplo que segue, valor tem como 
resultado 45 : 

240 VALOR = 5*((1 + 2) ~ 2) 

Como se vê, o MSX-BASIC permite que se tenha um parêntese dentro de outro parêntese. 

Se o parêntese não é utilizado, o MSX-BASIC utiliza o critério da precedência para avaliar 
os operadores. Isso significa que certas operações serão executadas antes que outras; por exemplo 
a multiplicação é executada antes da soma. Observe a dificuldade que existe para lembrar a 
precedência de uma linha como a seguinte: 

40 QUAL =93.4 + 73/72.8 * 8-3 

Os bons programadores utilizam sempre o parêntese, sendo este um hábito que você deve 
adquirir. 

Operadores relacionais são utilizados com maior freqüência nas declarações IF THEN para 
comparar dois números ou duas séries. Até aqui, já vimos dois operadores relacionais: “<” foi 
utilizado na linha 60 de “PRIMEI” e foi utilizado na linha 30 de “SOUN”. Quando o MSX- 
BASIC avalia uma relação, o resultado é 0 se a relação for verdadeira, e um número diferente 
de zero (normalmente 1) se a relação for falsa, A Tabela 8.6 mostra todos os operadores 
relacionais. 


Tabela 8.6 Operadores relacionais do MSX-BASIC. 


Operador 

Condição a ser VeriJ 

- 

Igualdade 

<> 

Desigualdade 

< 

Menor do que 

< = 

Menor ou igual a 

> 

Maior do que 

> = 

Maior ou igual a 


70 


MSX Guia do Usuário 


No MSX-BASIC existem ainda operadores lógicos, similares aos operadores relacionais. Os 
operadores logicos são utilizados entre dois valores lógicos (isto é, entre dois valores que são 

verdadeiros ou falsos). Os operadores lógicos seguem as definições padronizadas para comparação 
indicadas na Figura 8.2. 

O operador NOT é um operador unário: opera apenas no argumento que o segue. Como é 
de se esperar NOT fornece como resultado o oposto do argumento (falso fica verdadeiro e ver- 
dadeiro fica falso). O programa que segue utiliza os operadores relacionais e lógicos. É utilizada 
uma forma nova da declaração IF THEN: IF THEN ELSE. Caso a condição entre o IF e o THEN 
seja verdadeira, a declaração que segue o THEN é executada; se a condição é falsa, a declaração 
após o ELSE é executada. 


X 

Y 

X AND Y 

t 

X OR Y 

X EQV Y 

X IMP Y 

X XOR Y 

1 

1 

1 

1 

1 

1 

0 

1 

0 

0 

1 

0 

0 

1 

0 

1 

0 . 

1 

0 

1 

1 

0 

0 

0 

0 

1 

1 

0 


Figuia 8.2 Operadores lógicos do MSX-BASIC. 


10 REM Exemplo de operadores 
20 REM logicos e relacionais 
30 P= 10 
40 Q = 20 

50 PRINT "P = Q e"; 

60 IF P = Q THEN PRINT "verdadeiro" ELSE 
PRINT "falso" 

70 PRINT "POQe"; 

80 IF PO Q THEN PRINT "verdadeiro" ELSE 
PRINT "falso ' 

90 PRINT "P < Q e”; 

100 IF P < Q THEN PRINT "verdadeiro" ELSE 
PRINT "falso" 

110 PRINT "P < = QE 

120 IF PO Q THEN PRINT "verdadeiro" ELSE 
PRINT "falso" 

130 PRINT "P> Qe"; 

140 IF P > QTHEN PRINT "verdadeiro" ELSE 
PRINT "falso" 

150 PRINT "P> = Qe"; 

160 IF P >= Q THEN PRINT "verdadeiro" ELSE 
PRINT "falso" 


Variáveis, Constantes, Funções e Aritmética 


71 


170 REM Posicione TR em verdade, e FA em falso 
180 TR = 0 
190 FA = 1 

200 PRINT '"Verdadeiro AND faiso e"; 

210 IF TR AND FATHEN PR INT "verdadeiro” ELSE 

PRINT "falso" 

220 PRINT "Verdade iro 'XO R Falso e; 

230 IF TR XOR FA THEN PRINT "verdadeiro" ELSE 
PRINT "falso" 

Podemos colocar outros valores neste programa para testar outras relações lógicas. 


MANIPULANDO SÉRIES DE CARACTERES 

As mesmas operações de adição e comparação que se fazem com números podem ser exe- 
cutadas com séries de caracteres. Quando adicionamos duas séries (chamadas de concatenação), o 
MSX-BASIC cria uma série nova com as duas. Por exemplo, 

10 REM Concatenacao de séries 
20 K$ = "Liberdade" 

30 L$ = "de escolha" 

40 M$ = K$ + L$ 

50 PRINT M$ 


resulta em 


Liberdade de escolha 

Os operadores relacionais que utilizamos com números podem ser utilizados, também, com 
séries. O MSX-BASIC compara duas sénes comparando um caractere por vez, a partir da esquerda. 
Todas as comparações são baseadas nos valores ASCII dos caracteres. Assim a comparação 

"Abc" < "a" 

seria verdadeira, uma vez que “A” tem um valor menor (em ASCII) que “a" e o MSX-BASIC 
ignora o comprimento da série. Se duas séries tém os mesmos caracteres, mas um é mais curto, 
ele é considerado menor que o mais longo. 

Agora que já foram vistas todas as maneiras em que podem ser utilizadas as variáveis e fazer 
contas de matemática com o MSX-BASIC, estamos prontos para começar a escrever um programa. 
Os capítulos que se seguem discutem comandos e funções que o ajudarão a escrever programas 
nao usuais. 


CAPÍTULO 

9 


CONTROLE DO PROGRAMA 



j Capítul ,° 7 TOCÍ a P rendeu ™ P°uco K-bre 0 controle do fluxo de um proerama- este 

p KS e„ t v q “r^ 

IF THEN TF THFW FT ç-c a r-n™ v executar as Unhas em sequencia, sao 

1L * E] T G0T0 - No P ro ^ ama “PRIMEI” você conheceu o comando FOR mas 

ZZZZZ IZZXT * discute tod “ - • — — - — 

Os Comandos IF THEN e IF THEN ELSE 

IF raEN7líra E N r E! rf ad t de P”S r ™“ você escrever, mais utilizará os comandos 

decisões base L^, O T° * bem Sm,r,ies: todos 05 úteis terío de tomar 

aecisoes baseadas em valores que podem ser alterados. 

IF TMnTmSX ZS? EI ; SE é Um CaS0 ***“ do IP THEN. Em um comido 

comSF TO eÍe o r «ÍT qUe foi aVaIiada «S» 

f ç i t * ELSEs o MSX-BASIC executa o comando que segue ao ELS* 3 se a condirão 

— .F^ dois c “ s!o muito 

Lembre-se de que a condição existente entre IF e THEN pode ser bastante complexa apesar 
de ser permitida apenas uma condição. Quando utilizamos uma eondiçjo muito comriexl deve 

abaLo veSíca ctocorariáve^ ^ *" ° MSXBASIC «“*»• «-pio. a Unha 


130 IF («DIA$ = "12") AND {MES$ = "Outubro") 
AND (ANO% = 1985)) XOR (N0T(V1 < = V2))) 
THEN GOTO 190 


72 


Controle do Programa 


73 


Existem duas maneiras principais de utilizar o comando IF THEN: 

IF condição THEN ação 

IF condição THEN GOTO número de linha 


Utilizamos o primeiro tipo de comando IF THEN quando se quer realizar uma única coisa e 
a condição é verdadeira, e utilizamos o segundo tipo de IF THEN para a maioria das outras 
finalidades. 

Uma utilização comum do comando IF THEN com um parâmetro de ação é a mudança de 
uma variável baseada em seu valor. Por exemplo, caso seja solicitada uma inserção em letras 
maiusculas, embora o usuário tenha digitado letras minúsculas, pode haver interesse em alterar 
a variável que contém a resposta para as maiusculas. O que segue é uma variação do programa 
SOUN que entende “N”, “n’\ “S” ou “s”: 

10 REM Um novo exemplo para utilizacao de desvio 
20 UNE INPUT "Entre S ou N: RESPOSTAS 

22 IF RESPOSTAS = "s" THEN RESPOSTAS = "S" 

24 IF RESPOSTAS = ,"n" THEN RESPOSTAS * "N" 

30 I F R ESPOSTAS - "S" THEN GOTO 70 
40 IF RESPOSTAS = "N" THEN GOTO 90 
50 PR1NT "Voce nao entrou com S ou N” 

60 GOTO 100 

70 PRINT "Voce digitou S" 

80 GOTO 100 

90 PRINT "Voce digitou N" 

100 END 

As linhas 22 e 24 foram acrescentadas para lidar com as letras minúsculas. 

Se você seguir o fluxo de controle deste programa verá que não é muito eficiente. Por 
exemplo, se o usuário digitar “s”, o MSX-BASIC verá isto só na linha 22; é um desperdício 
executar as linhas 24 e 30 antes de passar para a linha 70. Neste caso, provavelmente seria uma 
boa idéia colocar outro comando após a declaração IF THEN das linhas 22 e 24. Lembre-se de 
que a maneira de fazer isto é a colocação de dois pontos entre as duas declarações. 

Se, após a declaração IF THEN, aparecer um segundo comando, ele será executado após 
o argumento de ação, quando a condição for verdadeira: 

10 REM Um novo exemplo para utilizacao de desvio 
20 LINE INPUT "Entre S ou N: ” ; RESPOSTA$ 

22 IF RESPOSTA$= THEN RESPOSTAS = "S"; GOTO 70 
24 IF RESPOSTAS = "n" THEN RESPOSTAS = "N"; GOTO 90 
30 IF R ESPOSTAS = "S" THEN GOTO 70 
40 IF RESPOSTAS = "N" THEN GOTO 90 
50 PRINT "Voce nao entrou com S ou N" 

60 GOTO 100 


74 


MSX Guia do Usuário 


70 PR INT "Voce digitou S" 
80 GOTO 100 
90 PRINT "Voce digitou N" 
100 END 


i S SsPOS™ 22 ta -v™ a 30 MSX ' BA , SI J « a RESPOSTAS t “s”, deve substituir o valer 

o rSsrs e :rr a Nes,e pro8iama ' na ° ha **«***& «bsiM, 

r de RESPOSTAS antes de seguir para a linha que imprime a mensagem mas isto seria 

necessário se outras linhas dependessem de RESPOSTAS. Estes acréscimos farão seu programa 
mais elegante, bem como mais rápido. programa 

comandolp THRmT^ / “ Pr0gIama - A Unha 40 P ode ser aitMada P™ «n. 

comundo IF THEN ELSE com um argumento de ação e outro comando; deste modo /possível 

eliminar as linhas 50 e 60. O resultado ê possível 


10 REM "Um novo exemplo para utilizacao de desvio 
20 UNE INPUT "Entre S ou N: RESPOSTAS 

22 IF RESPOSTAS - ‘s" THEN RESPOSTAS = "S" : GOTO 70 
24 IF RESPOSTA$= "n"THEI\l RESPOSTAS - "N" • GOTO 90 
30 IF RESPOSTAS - "S" THEN GOTO 70 
40 IF RESPOSTAS = "N" THEN GOTO 90 ELSE 
PRINT "Voce nao entrou com S ou N": GOTO 100 
70 PRINT "Voce digitou S" 

80 GOTO 100 

90 PRINT "Voce digitou N" 

100 END 

Este programa, ao ser processado, se comporta exatamente como o programa “SOUfT 


MAIS A RESPEITO DE MODIFICAÇÕES DE PROGRAMAS 

A discussão que se segue lhe dará uma visão maior de como modificar um programa O 
“r™ Uma VeZ qUe VOcê acabou ° programa “SOUN” adicionando e 

^ Como voce viu, a adição de uma linha é simples: basta dar-lhe um número que esteia entre 
os numeros das linhas onde vai ser inserida a nova linha. Ao ser dado o comando LIST. a nova 
a aparece entre as outras. Para eliminar linhas, utilize o comando DELETE. O argumento 
do contando DELETE é semelhante ao do contando LIST, isto é, uma faixa de núnj^. Se, 
apos a modificação da linha 40, quisermos eliminar as linhas 50 até a 60 basta digitar; 

DELETE 50-60 

A última versão deste programa apresenta um comando MSX-BASIC bastante interessante 
mmto uttl nas modiTtcaçBes de programas. Observe que a sua numeração de linhas, tão ordenada' 
foi corrompida pela adtçao de algumas linhas e eliminação de outras. Se houver interesse em que 


Controle do Programa 


75 


a numeração de suas linhas volte a ser feita em incrementos de 10, sem espaços entre elas, utilize 
o comando RENUM. Dê o comando RENUM e em seguida o comando LIST: RENUM: LIST 


10 REM Um novo exemplo para utilizacao de desvio 
20 LINE INPUT "Entre Sou N:”; RESPOSTAS 
30 IF RESPOSTAS = "s" THEN RESPOSTAS = "S": GOTO 70 
40 IF R ESPOST A$ = "n " THEN RESPOSTAS - "N": GOTO 90 
50 IF RESPOSTAS = "S" THEN GOTO 70 
60 IF RESPOSTAS = "N" THEN GOTO 90 ELSE 
PRINT "Voce nao entrou com S ou N": 

GOTO 100 

70 PRINT "Voce digitou S" 

80 GOTO 100 

90 PRINT "Voce digitou N" 

100 END 

Sua numeração volta a ser ordenada de 10 em 10. 

O comando RENUM tem uma característica muito potente que não foi vista no último 
programa. Acrescente alinha que segue ao programa; 

55 REM A próxima linha e longa 

Dê, agora, os comandos RENUM e LIST ; o resultado é 

10 REM Um novo exemplo para utilizacao de desvio 
20 LINE INPUT "Entre S ou N; RESPOSTAS 
30 IF R ESPOST A$= "s" THEN R ESPOST A$ = "S": GOTO 80 
40 IF R ESPOST A$ = "n" THEN RESPOSTAS = "N": GOTO 100 
50 IF RESPOSTAS - "S" THEN GOTO 80 
60 REM A próxima linha e longa 
70 IF RESPOSTAS - "N" THEN GOTO 100 ELSE 
PRINT "Voce nao entrou com S ou N": 

GOTO 110 

80 PRINT "Voce digitou S" 

90 GOTO 110 

100 PRINT “Voce digitou N" 

110 END 

Observe que a Unha que era 60, agora é 70, e a linha que era 70, agora é 80, e assim por 
diante. À primeira vista você pode entrar em pânico pensando que todas as declarações GOTO 
estão erradas, mas se comparar esta versão com a anterior, verá que o comando RENUM mudou 
todos os comandos GOTO para você. Assim, sempre que você desejar, pode utilizar o comando 
RENUM, e estar confiante de que todos os números de linhas, estejam eles dentro de um comando, 
ou no começo de uma linha, terão a correspondência correta. 



76 


MSX Guia do Usuário 


Os Comandos FOR e NEXT 

Em muitas situações precisamos executar uma tarefa repetidas vezes. Por exemplo, você 
pode se lembrar da ocasião em que foi obrigado a escrever 100 vezes no quadro-negro “Eu não 
vou dormir ! Os comandos FOR e NEXT tomam este tipo de tarefa muito mais fácil. Processe o 
seguinte programa: 

10 REM Terceira serie 
20 FOR CONT = 1 TO 100 
30 PRINT "Eu nao vou dormir” 

40 NEXT CONT 

50 PRINT "Posso ir para casa agora?" 

As linhas rolam rapidamente pela tela, mas o MSX-BASIC realmente escreve a linha 
100 vezes. 

Ao comando FOR sempre está associado um comando NEXT; esta é a razão pela qual 
as linhas intermediárias são denominadas loop FOR NEXT. As linhas 20 até 40 do programa 
anterior são um loop FOR-NEXT. A estrutura do loop FOR-NEXT é 

FOR varloop = numin TO numfin 


outros comandos . . . 


NEXT varloop 

O “varloop" utilizado nos comandos FOR e NEXT é uma variável numérica, e para “numin’* 
e “numfin” podemos utilizar qualquer número (ou variável) desde que “numin” seja maior do que 
“numfin”. 

Quando o MSX-BASIC encontra o comando FOR, dá ao “varloop” o valor de “numin”. 
Em seguida processa noimalmente os demais comandos, Quando encontra o comando NEXT, 
volta ao comando FOR, adicionando 1 ao “varloop”, e verificando se a variável é maior do que 
“numfin”. Se não é maior, repete novamente o loop; se é maior, passa ao comando que 
segue NEXT. 

O que segue é um exemplo simples de um loop FOR-NEXT. Observe que a variável Hl é 
impressa dentro do loop, o que é perfeitamente aceitável, uma vez que ela é como outra variável 
qualquer. 

10 REM Um FOR-NEXT loop simples 
20 PRINT "Iniciando" 

30 FOR Hl = 1 TO 5 
40 PRINT Hl 
50 NEXT Hl 
60 PRINT 'Terminado" 


Controle do Programo 


77 


Ao processar este programa será feita a seguíte impressão: 

iniciando 

1 

2 

3 

4 

5 

Terminando 


Apesa, de ser permitido alterar o valor de uma variável de loop dentro do loop, isso não i uma 
ideta uma vez que tal operação podetá ser esquecida ao ser feita outra alteração posterior. 

npvt° r MS í" BASIt Peimite qUC TO “ coloí i ue t ) uaIc ' L!er “mando dentro de um loop FOR- 

S tooos FOR NFV? r°n ““ ‘-° p F0R - NEXT de -“ro d = outro; a isto chamanos de 
nhar loops FOR-NEXT. Quando voce aninha loops, deve estar bem seguro de que o loop 

rno esta completamente dentro do loop externo, já que o MSX-BASIC dará uma mensagem 
de erro se encontrar uma variável errada em um comando NEXT. 

O programa que segue forma quadrados de 10 X 10 pontos com os números de 100 até 

‘f: . Is, ° P° d ' P“ ecer b f> <““>« feito, se uma programação complicada; como você 

ve, e bem facil fa2e-lo com loops FOR-NEXT aninhados. ^ 


10 REM Faca um quadrado de 10 x 10 pontos 
20 FOR X = 10 TO 19 
30 FOR Y = 0 TO 9 
40 PRINT (10*X) + Y; 

50 NEXT Y 
60 PRINT 
70 NEXT X 


Você verá no próximo capítulo porque é 
os números aparecerem na mesma linha. 


que o ponto e vúgula (;), após o comando PRINT, faz 


s„ ° C r ,° raand0 F0 , R P° 4 ™ ter o argumento STEP, que informa ao MSX-BASIC o quanto deve 

set somado a vanavel cada vez que passa pelo NEXT. Caso seja utilizado o argumento STEP o 
formato do loop FOR-NEXT é: argumento s I üP, o 


FOR varloop - numin TO nurnfin STEP passval 


outros comandos . . . 


NEXT varloop 


78 


MSX Guia do Usuário 


Em vez de somar 1, o “passval” é somado ao “varloop” pelo MSX-BASIC a cada passagem feita 
pelo loop. 0 programa anterior pode ser reescrito: 

10 REM Faca um quadrado de 10 * 10 
20 FOR X = 100 TO 190 STEP 10 
30 FOR Y = 0TO9 
40 PRINTX + Y; 

50 NEXT Y 
60 PRINT 
70 NEXT X 

Se for necessário poderá ser utilizado um valor negativo para “passval”, o que tem grande 
utilidade em contagens regressivas. 

10 REM Contagem regressiva 
20 FOR Q = 37 TO 28 STEP -1 

30 PRINT Q 
40 NEXT Q 

Que causará a seguinte impressão: 

37 

36 

35 

34 

33 

32 

31 
30 
29 
28 

Os Comandos GOSUB e RETURN 

Uma característica de grande parte das linguagens modernas de programação são as sub- 
rotinas. A sub-rotina é um programa menor dentro de um maior Ela é útil quando existe um 
conjunto de passos que devem ser executados repetidas vezes, em diferentes locais do programa. 
Em vez de repetir sempre os mesmos passos, criamos uma sub-rotina, fazemos um desvio até ela 
quando necessário e depois voltamos à parte principal do programa. 

O MSX-BASIC tem uma capacidade limitada de fazer sub-rotinas, O comando GOSUB 
o envia para uma sub-rotina (GOSUB significa “vá até a sub-rotina”). Toda sub-rotina termina 
com o comando RETURN, que instrui o MSX-BASIC que volte para a linha seguinte ao comando 
GOSUB. Ao entrar em uma sub-rotina, sempre é necessária a utilização do comando GOSUB, 
pois assim o comando RETURN saberá para onde retornar. 

O exemplo adequado de uma sub-rotina é um programa que imprime as palavras de uma 
música qualquer. Em vez de ter muitas linhas que imprimam “Falalalalalalalala”, podemos ter 
uma sub-rotina para esta impressão. 



Controle do Programa 


79 


10 REM Uma estranha maneira de imprimir uma 

20 REM cancao 

30 PRINT "Enfeite o salao com luzes prateadas," 

40 GOSUB 200 

50 PRINT "E epoca de estar feliz". 

60 GOSUB 200 

70 PRINT "Senhor conhecemos nossa missão," 

80 GOSUB 200 

90 PRINT "Cantarolemos a velha cancao." 

100 GOSUB 200 
110 END 

200 REM Esta e a sub-rotina do Falala 
210 PRINT "Fa"; 

220 FOR X = 1 TO 8 
230 PRINT "la"; 

240 NEXTX 
250 PRINT 
260 RETURN 

Ao encontrai o comando GOSUB, o MSX-BASIC sai da linha 40, vai paia a linha 200 e 
memoriza que da próxima vez que encontrai o comando RETURN, deverá retomar à linha 50. 
Na sub-rotina, o MSX-BASIC imprime “Fa” seguido de oito “la”s (o loop FOR-NEXT é sem 
dúvida fútil, mas deve servir de exemplo para a importância de um loop). Na linha 250 termina 
a linha “Faial alalalalal ala” da tela e a 260 informa ao MSX-BASIC que é o fim da sub-rotina. 

Observe a linha 110; o fim do programa está no meio. Se você pensar sobre a execução 
de um programa, verá que este é realmente o melhor local para colocar a declaração END. Se a 
linha 110 não existisse, o MSX-BASIC executaria a linha 200 após retomar da última chamada 
da sub-rotína. Ao executar a linha 260, teríamos a seguinte mensagem de erro: 

RETURN WITHOUT GOSUB IN 260 

Isto ocorre porque o MSX-BASIC quer retomar ao programa, mas não sabe para onde, já que a 
sub-rotina nao foi executada com o auxílio de um comando GOSUB. Esta é a razão pela qual 
os programadores BASIC normalmente colocam a declaração END antes do início de uma sub- 
rotina. O MSX-BASIC permite que se tenha tantas declarações END quantas se desejar em um 
programa. 


Comandos ON GOTO e ON GOSUB 

A utilidade do comando IF THEN é a de verificar uma única condição e escolher um entre 
dois caminhos, dependendo do resultado. Existem, entretanto, locais nos programas onde uma 
decisão poderá ter mais do que duas respostas possíveis. Por exemplo, você poderá pedir ao usuário 
que digite A, B, C ou D. A utilização de quatro comandos IF THEN é um desperdício, de modo 
que o MSX-BASIC possui os comandos ON GOTO e ON GOSUB. 


80 


MSX Guia do Usuário 


A estrutura do comando ON GOTO é 

ON numérico GOTO linhal ,Hnha2,... 

O comando ON GOSUB apresenta uma estrutura similar. O termo “numérico” é uma expressão 
que rètoma um número entre 0 e 255. Caso a variável seja avaliada em 1, 0 MSX-BASIC vai para 
o número de linha linhal ; se for avaliada em 2, o MSX-BASIC vai até o número de linha linha2, e 
assim por diante. Caso a variável seja avaliada em 0 ou um número que é maior do que o com- 
primento da lista, o MSX-BASIC assume que você quer ii até a linha que segue o comando 
ON GOTO. 

Como se vê, utilizar o ON GOTO para escolhas conhecidas é muito fácil. No exemplo 
mencionado acima, o usuário digita A, B, C ou D e pressiona a tecla RETURN. O programa a 
seguir mostra como utilizar o ON GOTO paia isto: 

10 REM Exemplo de ON GOTO 

20 UNE INPUT "Digite A, B, C ou D: LETRA$ 

30 ON (ASC(LETRA$)-64) GOTO 60,80,100,120 
40 PRINT J 'Nao era A, B,C ou D!" 

50 END 

60 PRINT “Voce digitou A" 

70 END 

80 PRINT “Voce digitou B“ 

90 END 

100 PRINT “Voce digitou C" 

110 END 

120 P.RINT "Voce digitou D" 

130 END 

A expressão no comando ON GOTO utiliza o operador ASC para encontrar o código ASCII da 
letra digitada. Uma vez que o código ASCII de A é 65, ASC(LETRA$)-64 resultará 1 para A, 

2 para B e assim por diante. Tente digitar uma letra minúscula para ver o que ocorre com números 
maiores que a lista de números de linhas. 


Interrompendo e Parando um Programa 

Este capítulo mostrou como você pode controlar a execução das partes de um programa. 
Entretanto, o usuário também tem algum controle sobre o que ocorre em um programa. 

Enquanto um programa estiver sendo processado, o usuário pode interromper a execução 
pressionando a tecla STOP. O MSX-BASIC apenas estará sendo informado para nada fazer até que 
o usuário volte a acionar novamente a tecla STOP. Assim, o usuário aciona a tecla STOP para 
interromper temporariamente o programa e pressiona-a novamente para que continue. 

Pressionar simultaneamente a tecla CTRL e STOP devolve você ao MSX-BASIC. Isso é útil 
quando você está experimentando um programa e quer testar diversas partes. De maneira geral, a 
combinação CTRL-STOP não é um bom método para interromper programas, mas em uma 
emergência é muito prática. 


CAPITULO 

10 


INSERÇÃO VIA TECLADO E EXIBIÇÃO DE TEXTO 


A maioria dos programas é controlada digitando-se as instruções no teclado e vendo os resul- 
tados na tela. Este capítulo apresenta os comandos que executam estas tarefas de inserção e sarda. 
Por exemplo, você já viu como o comando LINE INPUT obtém o texto do usuário, e o comando 
PRINT apresenta o texto na tela. Estes comandos, e aqueles a eles relacionados, serão descritos 
em detalhes neste capítulo. 

Armazenando Inserções pelo Teclado 

Ao escrever um programa que exige a digitação de um determinado texto pelo usuário, 
normalmente apresentamos uma mensagem na tela e aguardamos a inserção. O MSX-BASIC 
armazena-a em uma variável (normalmente uma variável série de caracteres), que você poderá 
utilizar pelo resto do programa. 

O COMANDO INPUT 


O comando INPUT é a maneira mais simples de se conseguir caracteres do teclado. Seu 
formato é 

INPUT '"mensagem"; variáveI1,variável2 r ... 

A mensagem é opcional, Quando o MSX-BASIC se depara com um comando INPUT, imprime 
um ponto de interrogação e um espaço, para em seguida, aguardar uma resposta do usuário termi- 
nada com a tecla RETURN. Se você inclui uma série de orientação, ela será impressa pelo 
MSX-BASIC antes do ponto de interrogação. Ao fornecer uma resposta, o usuário pode utilizar 
as teclas INS, DEL e BACKSPACE, 


81 


82 


MSX Guia do Usuário 


0 caso mais simples de um comando INPUT é aquele com apenas uma variável série: 
450 INPUT JX$ 

Neste caso, o MSX-BASIC lê a linha teclada pelo usuário armazenando-a na série JX$, exceto nas 
seguintes circunstâncias: 

- O usuário não deve incluir uma virgula no texto. Quando o MSX-BASIC vê uma virgula, 
assume que duas séries foram digitadas em vez de uma e imprime a mensagem 

? Extra ignored 

Apenas o texto antes da vírgula será colocado na variável. 

— O primeiro caractere não deve ser um ponto de interrogação, a menos que o usuário 
não pretenda que o mesmo faça parte da série. Quando o MSX-BASIC vê o ponto de 
interrogação no começo da linha assume que o usuário está teclando uma série deli- 
mitada por um ponto de interrogação. Assim, não a coloca na variável. 

— Para incluir uma vírgula no texto, este deve começar e terminar com aspas. 

Incidentalmente, o caractere RETURN não é colocado na série. 

Se houver interesse em se aceitar duas séries, elas deverão ser separadas por uma vírgula. 
Por exemplo : 

450 INPUT JX$,KX$ 

O usuário deve digitar a primeira série, uma vírgula e a segunda série. Caso não seja fornecida 
a segunda série, o MSX-BASIC informa 

?? 

que talvez seja a mensagem de erro mais confusa que você poderá obter do MSX-BASIC. Ela 
indica que o MSX-BASIC está aguardando mais inserções. 

Se for utilizado o comando INPUT com uma variável numérica, o usuário deve teclar um 
número. Por exemplo, se o comando INPUT é 

230 INPUT X 

e o usuário teclai “xxx”, será dada a seguinte mensagem pelo MSX-BASIC: 

? Redo from start 
? 

Esta talvez seja a segunda mensagem de erro mais confusa que você pode receber do MSX-BASIC. 

É a maneira de o MSX-BASIC informar ao usuário que o que foi digitado não era um número. 


Inserção via Teclado e Exibição de Texto 


83 


Caso seu comando INPUT tenha muitas variáveis, e pelo menos uma delas é numérica, e 
seja feita uma teclagem incorreta, surgirá a mensagem de erro anterior e o usuário terá de repetir 
toda a lista novamente. Por exemplo, 

170 INPUT VW$,U,M 

O COMANDO LI NE INPUT 

Como foi visto na discussão anterior, o comando INPUT não é o melhor modo de se conse- 
guir informação do usuário. O comando LINE INPUT é muito mais limpo, sendo esta a razão de 
ter sido utilizada nos capítulos anteriores. 

A estrutura do comando LINE INPUT é similar à do comando INPUT 
LINE INPUT "mensagem";variável$ 

A mensagem é opcional. Observe que o comando LINE INPUT aceita apenas uma variável, que 
deve ser uma série de caracteres. Assim fica tudo muito mais simples para o MSX-BASIC, uma 
vez que não precisa procurar vírgulas ou números de variáveis. Ainda mais, o comando LINE 
INPUT não imprime o ponto de interrogação. 

O programa abaixo permite que o usuário veja o tipo de texto que pode ser inserido usando 
o comando LINE INPUT Processe-o, tentando diversas séries diferentes, incluindo caracteres 
que poderiam confundir o comando INPUT, como as vírgulas, pontos de interrogação etc. Ao 
terminar, pressione a tecla RETURN sozinha (isto é, insira uma série que não contenha nada). 

10 REM Experimentando com LINE INPUT 
20 LINE INPUT 'Tecle alguma coisa -> V$ 

30 IF V$ = " " THEN END 
40 PRINT V$ 

50 GOTO 20 

Deste modo você deve convencer-se de que o comando LINE INPUT aceita tudo o que você tecla. 

A FUNÇÃO INPUT$ E A VARIÁVEL INKEY$ 

Há instantes em que você quer receber dados do teclado, mas não deseja forçar o usuário a 
pressionar a tecla RETURN. Caso você saiba a quantidade exata de caracteres que o usuário deve 
teclar, pode ser utilizada a função INPUTS- O argumento de INPUTS é o número de caracteres que 
você está aguardando. 

Por exemplo, a primeira versão do programa “SOUN” poderá ser escrita de modo a aceitar 
um caractere sem obrigar ao usuário operar a tecla RETURN. A linha 20 pode ser convertida de 

20 UNE INPUT"Dígite Sou N:"; RESPOSTAS 

para 

20 PRINT "Digite S ou N: 

25 RESPOSTAS = I N PUT$( 1 ) 



84 


MSX Guia do Usuário 


27 PRINT RESPOSTA$; 

à func^lwnrfí! r * “’ tr0dUÇÍ0 , de tex '° é ‘ Bariável INKE « Esta variável é semelhante 
a função INPUTS, exceto que a vanável INKEY$ retém o caractere que está sendo pressionado 

pelo usuano no momento em que o MSX-BAS1C lê a Unha com INKEYS. Se neste momento c 

aSlNXFYS P : e r nmd0 ** 1,gUma ***** resulta «” ™* •** vazia. PoroutrcTlado 
a variavel INKEYS aceita apenas um caractere. 

A utilização da variável INKEYS não é fácil, já que o usuário não está pressionando a tech 
requencia Entretanto, se voce venfícax continuamente se INKEYS está vazio (noimalmente 
denominado nulo), é possível identificai com facilidade a teclagem do usuário Por exemnln 
podemos utilizar INKEYS no programa “SOUN”. Pode-se converter a linha 20 dT P ‘ 


20 UNE INPUT “Digite S ou N: RESPOSTA$ 


para 


20 PRINT “DigiteS ou N: 

25 IF INKEY$ - THEN GOTO 25 ELSE RESPOSTAS = INKEYS 
27 PRINT RESPOSTAS; * 

A diferença fundamental entre a utilização da variável INKEYS e a função INPUTS é oue 
o cursor nao aparece na tela ao processar o loop INKEYS na linha 25. Isto^oderá confundir 

MEYi UanOS ^ eSPeram VCr ° CUFSOr; entretant0 ’ Se você ní0 Quiser o cursor na tela utilize 


INSERINDO CARACTERES ESPECIAIS 

Até o presente, você apenas aprendeu como inserir caracteres que são vistos no tecladn 

“rirv 5,mb0 í° S * pmniaçí0 - 0 “»*“**» ** -ostmt mui omrm 

" " .* todos p ° dem sei àvtoim. No Apêndice C sSo mostrados todos os caracteres qu- 

ser dado o ST' eXemP °’ •“ ““ letia “ A ”- ™ t—. deve 

PRINT CHR$(142) 

Pode haver interesse em inserir estes caracteres a partir do teclado com um dos comande - 

teclad^ teClad °- Para que * to P° SSÍVèl > ™cê deve pressionar uma tecia especial no seú 
teclado, enquanto pressiona uma tecla regular. ^ 

a tech sní^f - TfÍ ^ “ T‘“ SHIFT ' C ° DE * GRAPH V °“ * está com 

r ’. para f rar uma letra ma i u scula, você deve manter pressionada a tecla SHIF" 

3 “ a ' f KdaS C0DE ' GRAPH ° peram ** mesmt maneiIa 1“ a tetri 

IFT, no sentido em que elas sao mantidas pressionadas enquanto você pressiona outra tecla. 


Inserção via Teclado e Exibição de Texto 


85 


Ao entrar com caracteres especiais, você mantém retida uma das teclas especiais. For 
exemplo, se você estiver digitando um texto e desejar incluir uma letra “A” maiuscula com trema, 
basta pressionar as teclas SHIFT e GRAPH e em seguida a tecla Á. 0 Apêndice E mostra as diversas 
teclas que devem ser pressionadas para os diferentes tipos de caracteres gráficos. 


0 Comando PRINT 

Existem muitas maneiras de apresentar um texto na tela de seu computador MSX, e todas 
envolvem o comando PRINT, que é o mais flexível do MSX-BASIC e pode ser utilizado em muitos 
tipos de apresentações de texto na tela. Você já viu a utilização do comando PRINT em muitos 
dos programas anteriores. 

Toda a discussão que se faz a seguir com o comando PRINT também se aplica ao comando 

1 PRINT. Da mesma forma que o comando LLIST imprime a saída do comando LIST em uma 
impressora, o comando I . PRINT imprime a saída do comando PRINT na impressora. 


IMPRESSÃO SIMPLES 

A forma mais simples do comando PRINT contém apenas uma série: 

PRINT série. 

A série pode ser tanto uma constante do tipo “Você digitou S’\ ou uma variável como 
RESPOSTAS. Neste caso j a série é impressa e o MSX-BASIC desloca o cursor para o começo da 
próxima linha. 

10 REM Um PRINT simples 
20 PRINT "Isto e a linha 1" 

30 PRINT “Isto e a linha 2 " 

40 PRINT 

50 PRINT “Isto e a linha 4" 

O comando PRINT pode ser dado sem argumento se você simplesmente quer descer com o cursor 
uma linha. 

Você pode imprimir mais do que uma variável em uma mesma linha, com o comando 
PRINT. A maneira mais fácil de fazer isto é separando as variáveis com um (;). Por exemplo, o 
programa abaixo cerca uma série de asteriscos: 

10 REM PRINT com ; 

20 PRINT “Digite 2 caracteres : " ; 

30 MM$= INPUT$(2) 

40 PRINT "*****•»; MM$; "***♦*" 



■ 


$6 MSX Guia do Utuário 


Neste caso o ponto e vírgula é utilizado na linha 20 (impedindo que o cursor se desloque para a 
linha seguinte) e na linha 40 (para colocar as três séries na mesma linha). Observe que o MSX- 
BASIC não coloca espaço entre as séries. Caso você queira colocar um espaço de cada lado da 
série, deve colocá-lo assim: 

40 PRINT "***** MM$; "*•***" 

É possível imprimir números da mesma maneira: 

10 REM PRINT com ; 

20 PRINT "Digite um numero de dois digitos: " ; 

30 11 = VAL(INPUT$<2)) 

40 PRINT ,, ***** ,,> 1*1 • «* , **’**f» 

Observe que o MSX-BASIC coloca espaços em volta do número; esta é uma limitação frustrante 
do comando PRINT. Tente processar o programa novamente com um número negativo. Como 
você pode ver, o espaço antes do número é reservado ao sinal negativo. Entretanto, sempre haverá 
um espaço depois do número. 

Se você utilizar vírgulas no lugar dos pontos e vírgulas entre as variáveis, o MSX-BASIC 
colocará espaços entre eles, de modo que cada variável fique alinhada nas colunas 1 e 14. Porém, 
isto não é uma regra fixa e depende do tipo de dados utilizados, de modo que se recomenda a 
utilização do ponto e vírgula em vez da vírgula. 

Como foi observado na linha 20 do programa anterior, você pode terminar um comando 
PRINT com um ponto e vírgula e o MSX-BASIC não irá para a linha seguinte. Assim, as linhas 

150 PRINT " 

160 PRINT "< " 


imprimirão 


Existem duas funções que podem ser utilizadas apenas como argumentos do comando 
PRINT; não poderão ser utilizados em nenhum outro local. A primeira é a função SPC, que 
opera da mesma forma que a função SPACES , bastando adicionar o número desejado de espaços 
à linha. Por exemplo, 

30 PRINT "Aqui SPC(IO); "e ali" 

imprime 

Aqui e ali 

A função TAB é muito mais útil: desloca o cursor para uma determinada coluna. A primeira 
coluna da tela é a coluna 0, a próxima é a 1 , e assim por diante. A função TAB facilita a montagem 
de tabelas quando não se conhece o comprimento de uma série ou de um número ao imprimi-lo. 



Inserção via Teclado e Exibição de Texto 


87 


As linhas abaixo imprimem uma lista de nomes com os primeiros alinhados na coluna 13 e as 
idades na coluna 20. 

320 PRINT "Ultimo"; TAB(14); "Primeiro"; TAB(21); "Idade" 

330 PRINT L1$;TAB(14); F 1 $; TAB(21>; Al 
340 PRINT L2$; TAB(14); F2$; TAB(21}; A2 
350 PRINT L3$; TAB(14); F3$;TAB(21}; A3 

Basta que cada nome fique na coluna certa e todos ficam alinhados se fosse dado um 
argumento à função TAB que movesse o cursor para frente e para trás, o MSX-BASIC o ignoraria. 
Assim, caso L2$ fosse maior que 14 caracteres, F2S seria impresso em cima dele. Para impedir 
isto podemos utilizar a função LEFTS. 

320 PRINT "Ultimo"; TAB(14); "Primeiro"; TAB(21); "Idade" 

330 PRINT LEFT$(L1$, 12);TAB(14); 

LEFT${F1$,6);TAB(21); Al 
340 PRINT LEFT$(L2$, 12);TAB(14); 

LEFT$(F2$, 6); TAB(21); A2 
350 PRINT LEFT$(L3$, 12);TAB(14); 

LEFT$(F3$, 6); TAB(21}; A3 

FORMATAÇÃO AVANÇADA DE IMPRESSÃO 

Apesar da impressão com o comando PRINT e as diversas funções da série permitirem 
grande flexibilidade, existe uma outra forma de uso do comando PRINT que o torna ainda mais 
poderoso. O comando PRINT USING permite que o formato da linha de saída seja especificado 
com caracteres especiais em uma série. A estrutura do comando é 

PRINT USING série formato; argumento1,argumento2,... 

S êrie fonrnto é uma constante ou variável série, e os argumentos podem ser qualquer constante 
ou variável. Infelizmente, preparar uma série formatada geralmente é difícil. Caso você tenha 
formatação simples para a linha é melhor utilizar funções e uma declaração PRINT regulares. 

Os caracteres que podem ser utilizados em uma série formatada são indicados nas Tabelas 
10-1 e 10-2. Qualquer caractere em uma série formatada que não apareça nesta lista é tratado 
como um caractere normal e é impresso exatamente como aparece na série formatada. 

Se tudo isto parecer um pouco confuso, não desista. O primeiro exemplo, a impressão de 
dígitos, tomará as coisas um pouco mais claras. Você utilizará o sinal de número (#) em uma 
série formatada para indicar o lugar em que deve ficar um digito. Processe o seguinte programa: 

10 REM Exemplo de PRINT USING 
20 NI = 1234 

30 PRINT USING "ooo####ooo"; NI 



88 


MSX Guia do Usuário 


A saída deste programa será 
0001 234000 

Os o s estão lá para mostrar-lhe que o MSX-BASIC imprime qualquer caractere não formatado 
na série formatada diretamente. Uma vez que vocé indicou quatro sinais de “número”, o MSX- 
BASIC imprimiu apenas quatro dígitos do número. 


Tabela 10.1 Caracteres para série de formatação numérica. 


Caractere Utilização 


# Espaço para um dígito 

Inclui um ponto decimal 

+ Indica + ou pode ser utilizado antes ou depois do número 

Indica apenas pode ser utilizado após o número 
$$ Coloca um $ à esquerda do número 

Desloca *’s à esquerda do número para toda a largura do campo 
**k Desloca um $ precedido pelos *’$ para toda a largura do campo 

Apresenta o número em notação científica. 


Agora, altere ligeiramente o programa: 

10 REM Exemplo de PRfNT USING 
20 NI = 1234 

30 PRINT USING “ooo####ooo''; NI 
40 PRINT USING ''ooo#######ooo"; NI 

Tabela 10.2 Caracteres para série de formatação de texto. 

Caractere Utilização 

W Espaço para caractere 

- Espaço para 1 caractere 

& Espaçamento variável 

— Próximo caractere é literal 

outro Coloca caracteres na saída 

Quando existem sete sinais de “número”, apesar de 1234 ser de apenas quatro dígitos o 
resultado é 


ooo 1234ooo 
ooo 1234ooo 


Inserção via Teclado e Exibição de Texto 


89 


Ao ser utilizado o sinal de “número”, o MSX-BASIC sempre deixa o número de espaços especi- 
ficados. Se o número impresso ocupai um número menor de espaços que aqueles especificados, o 
MSX-BASIC preencherá os espaços à esquerda com vazios. 

O preenchimento de espaços à esquerda com vazios é denominado justificação à esquerda. 
Isto é bastante útil quando existe uma coluna de números que se deseja adicionar visualmente. 
Compare a saída das duas paites do programa abaixo: 


10 

20 

30 

40 

50 

60 

70 

80 

90 

92 

100 

110 

120 

130 

140 

150 


O resultado é 


REM Somando colunas a moda antiga 

XI = 6391 

X2 * 934 

X3 - 5179 

PRINT XI 

PRINTX2 

PRINT X3 

PRINT " " 

PRINT X1+X2+X3 
PRINT: PRINT 

REM Somando colunas pelo novo método 
PRINT USING "#####"; XI 
PRINT USING "#####"; X2 
PRINT USING "#####"; X3 
PRINT " " 

PRINT USING " ##### "; X1+X2+X3 


6391 

934 

5179 


12504 

6391 

934 

5179 


12504 

Observe a dificuldade em adicionai o primeiro conjunto de números mentalmente, uma vez que 
não estão alinhados na forma usual. O segundo conjunto de números é muito mais fácil de ser 
somado visualmente, 

Se vocé estiver utilizando números reais, poderá colocar o ponto (.) na série de formatação 
para especificar onde deseja que apareça o ponto decimal, O MSX-BASIC arredondará as casas 
decimais em excesso ou colocará zeros se houver poucas casas decimais: 


PO 


MSX Guia do Usuário 


10 REM PRIMT USING com . 

20 PRIIMT USING "###. ###''; 123456 
30 PRINT USING "###.###"; 1.23456 
40 PRINT USING "###. ###"; 1 
50 PRINT USING "### . ###"; 1 i 


A saída é 


123.456 

1.235 

1.000 

1.100 


Ví 3456 foi arredondado P™ 1-235 e não truncado para 1.234. O 

MSX BASIC utiliza regras padronizadas de arredondamento. 


o ainafL prognum P ° íem0S Utüizar 0 de adi íí 0 “tes ou depois do número fazendo 
MSX RASirTr 0 apaiecer , antes dele na «**- Independentemente do tamanho do número c 
MSX-BAS C deslocara o amai para a coluna à esquerda do número. O smal de subtração Sé- 

pode ser utützado para apresentar um apús o número caso o mesmo seja negativo 


10 REM PRINT USING com +e - 
20 PRINT USING "+# #/// /». 721 
30 PRINT USING "+####"'; -721 
40 PRINT USING "####+". 93 
50 PRINT USING "####+ »; .93 
60 PRINT USING "####-"/ 128 
70 PRINT USING "####-"; -128‘ 


O resultado é 


+721 

-721 

93+ 

93- 

128 

128- 


Note que os números impressos sempre ocupam o 
mais um para o “+” ou 


número de espaços indicados pelos sina- 


A colocação de dois sinais de cifrão à esquerda dos sinais de # faz 0 MSX-BASIC deslc - s - 
um smal de cifrão para a esquerda da saída. Por exemplo 


210 PRINT USING "$$####. ##”• 77 32 
220 PRINT USING "$$####. ##- 8120.31 


Inserção via Teclado e Exibição de Texto 


91 


imprimiria 


$77.32 

$8120.31 

Dependendo do fabricante do seu MSX, o mesmo poderá ser feito com dois sinais de libra ou 
iene na série de formatação, 

Você deve ter visto cheques escritos com asteriscos precedendo os números; isto ajuda na 
prevenção de falsificações. O comando PRINT USING permite que você coloque antes de um 
número diversos asteriscos, colocando, para tal, dois asteriscos na série de formatação. Por 
exemplo: 

210 PRINT USING "**##.##"; 77. 32 


imprimiria 


****77.32 

Se você desejar tanto o sinal de cifrão como o asterisco, utilize o “**$” na série de formatação; 
210 PRINT USING "**$####.##"; 77.32 


imprimiria 


**** $77.32 

Algumas pessoas gostam de ver as vírgulas nos números impressos. Se você incluir uma 
vírgula à esquerda do ponto, na série de formatação, a vírgula será acrescentada na saída. A vírgula 
insere um espaço na série de saída, porém cada vírgula impressa ocupa o espaço de um dígito. 
Por exemplo: 

80 PRINT USING "########,. ##"; 6328900.99 


imprimirá 

6,328,900.99 

Você pode utilizar quatro circunflexos ( AAAA ) para indicar que o número deve ser impresso 
em notação científica. Utilizaremos os sinais dos números da mesma forma que antes para indicar 
os dígitos à esquerda e à direita do decimal. Por exemplo, 

320 PRINT USING "# . 35.7182 

imprimiria 


0.3572E+02 


92 


MSX Guia do Usuário 


Também é possível formatar séries com o comando PRINT USING. Para especificar quantas 
posiçoes de uma sene devem ser impressas, utilize dois sinais “\" e espaços. Por exemplo para 

ateo Uma S ^ d6ÍXe CÜ1CO e$PaÇ ° S ’ “Vespaço, espaço, espaço, \”, como no programa 


10 REM PRINT USING \ 

20 S1$= "mnopqrst" 

30 S2S = "xx" 

40 PRINT USING "yyy\ Vyyy";S1$ 

50 PRINT USING "yyy\ \yyy”; S2$ 

O resultado é 

yyymnopqyyy 
yyyxx yyy 

Se a serie for maior do que o número de espaços disponíveis, como em SIS, serão utilizados só 

os caracteres da esquerda. Se a série for muito curta, como em S2$, serão colocados vazios à 
sua direita. 

O ponto de exclamação (!) indica que apenas o primeiro caractere da série deverá ser 
impresso. O programa 

10 REM PRINT USING í 
20 S1$= "mnopqrst" 

30 S2$ = "xx" 

40 PRINT USING "yyylyyy"; S1$ 

50 PRINT U$ING "yyylyyy"; S2$ 

imprime 


yyymyyy 

yyyxyyy 


O símbolo 5 indica que toda a série deverá ser impressa. Entretanto, uma vez que isto impede 
o alinhamento de outro texto após a série na linha, é pouco utilizado. 


Voce pode estar pensando no que fazer para que um dos caracteres especiais seja impresso 
Por exemplo, voce poderá desejar cercar um número com pontos. Para tal, utilize o sinal 

antes do caractere especial, pois isto faz com que ele deixe de ser considerado especial Por 
exemplo, * 


40 PRINT USING 590 

imprimirá 

... 590 ... 


Inserção via Teclado e Exibição de Texto 


93 


UTILIZANDO TODA A TELA 

0 comando PRJNT inicia a impressão onde quer que se encontre o cursor ao ser dado este 
comando. Se você terminar um comando PRINT com um ponto e vírgula, o cursor permanecerá 
na posição após a impressão do último caractere. Pode haver o interesse em mover o cursor para 
qualquer posição da tela. 0 MSX-BASIC lhe dá a flexibilidade de movimentar o cursor em dois 
sentidos. 

No modo texto, que tem sido utilizado, a tela tem 24 linhas horizontais e 39 colunas 
verticais, 0 MSX-BASIC utiliza coordenadas cartesianas para representar a posição da tela (talvez 
seja bom consultar seus livros de Geometria). Cada posição da tela tem uma coordenada x e y, 
indicada como 

(x,y> 

A coordenada x varia de 0 (à esquerda) a 38 (à direita) e a coordenada y varia de 0 (em cima) 
até 23 (em baixo), assumindo que você tenha desligado a linha das funções como veremos a 
seguir). Assim, o canto superior esquerdo é denominado (0,0) e o canto inferior direito (38,23). 
A Figura 10.1 mostra uma representação das posições da teia. 

A primeira coisa que você deve fazer é desligai a linha das teclas de funções no fim da tela 
e em seguida limpar a tela. O comando KEY OFF desliga a linha das teclas de funções. O 
comando CLS é útil quando acionado com o comando PRINT, já que ele elimina o texto da tela. 
Após o comando CLS, o cursor é colocado no canto superior esquerdo da tela, ou seja, em (0,0). 

10 REM Posicionamento de texto 
20 KEY OFF 
30 CLS 

O comando LOCATE desloca o cursor para uma posição específica. Sua estrutura é 
LOCATE x,y 

Processe o seguinte programa: 

10 REM Posicionamento de texto 
20 KEY OFF 
30 CLS 

40 LOCATE 20,12 
50 PRINT"*"; 

60 TIME = 0 

70 IF TIME < 100 THEN GOTO 70 

Assim, será colocado um asterisco no centro da tela e haverá uma pausa de dois segundos. O 
programa seguinte traça uma linha de asteriscos do canto inferior esquerdo ao centro superior 
da tela: 




94 


MSX Guia do Usuário 


10 REM Trace uma diagonal 
20 KEY OFF 
30 CLS 

40 FOR I = 23TOOSTEP-1 
50 LOCATE (23-1), I 
60 PRINT 
70 NEXT I 

O MSX-BASIC permite a exclusão dos valores do comando LOCATE, desde que se inclua 
a virgula. Se um dos argumentos for excluído o MSX-BASIC assumirá que você deseja que o 
cursor permaneça no mesmo local em que estava. Por exemplo, o programa abaixo imprime 
cinco asteriscos em uma linha vertical iniciando no topo da coluna em que se encontra o cursor: 

160 FOR N - 0 TO 4 
170 LOCATE,N 
180 PRINT 
190 NEXT N 


Enquanto você estiver escrevendo um programa poderá não saber com certeza onde se 
encontra o cursor na tela. A função POS lhe dará o valor da coordenada x. O argumento da 
função POS poderá ser qualquer número, já que o MSX-BASIC ignora o argumento. A variável 
CSRLIN retoma o valor da coordenada y e nao é uma função. (Isto explica porque muitos 
programadores reclamam sobre a inconsistência do BASIC em gerai.) 

Por exemplo, a$ linhas que seguem armazenam a posição atual do cursor nas variáveis X9 

e Y9: 


410 X9 = POS(1 ) 
420 Y9= CSRLIN 


Caso você esteja utilizando o comando LPRINT para dar saída a uma impressora, pode utilizar 
a função LPOS da mesma maneira que a função POS. Não há equivalente ao CSRLIN para 
impressora. 


Inserção via Teclado e Exibição de Texto 


95 


(0,0) (3,0) (38,0) 



Figura 10.1 Posições na tela. 


CAPfTULO 

11 


GRÁFICOS 



Toda programaçao feita até agora envolveu apenas texto. Se você tiver adquirido cartuchos 
de jogos para seu computador MSX, já deve ter tido oportunidade de observar todas as cores 
e formas que em nada se parecem com aquilo que você tem utilizado no MSX-BASIC. Entre- 
tanto, todas as características gráficas estão disponíveis no MSX-BASIC. 

Os gráficos em computadores são uma área muito excitante da tecnologia computacional 
moderna. Observamos gráficos feitos por computadores nas propagandas da televisão e em muitos 
filmes. Uma imagem gerada por um computador é formada por três elementos básicos: cor, 
movimento (animação) e forma. 

Os gráficos que podem ser criados com o MSX-BASIC não serão tão detalhados ou excitantes 
como aqueles da televisão, mas fornecerão uma compreensão básica de como os gráficos por 
computador, com finalidades comerciais, são criados. O MSX-BASIC oferece a você uma grande 
flexibilidade no desenvolvimento de imagens. Por exemplo, você pode escolher entre 15 cores 
diferentes, podendo ainda desenhar sprites, que são pequenas imagens móveis as quais podem 
ser utilizadas em jogos. 

O seu computador MSX tem quatro modos de tela: 

- Modo 0, texto-padrão. É o modo com o qual você operou até agora. Não é possível 
fazer gráficos nele, mas o texto é mostrado em uma tela de 40 x 24 pontos^ com uma 
cor para os caracteres (denominada cor do primeiro plano) e outra para o fundo. 

— Modo 1, texto multicolorido. Como no modo 0, este permite apresentar principalmente 
texto, mas cada conjunto de oito letras poderá ter suas cores próprias, tanto no primeiro 
plano como no segundo plano, podendo utilizar-se sprites (mas não gráficos). O texto 
é apresentado em uma tela de 32 x 40 pontos. 

- Modo 2, gráficos de alta resolução. A maioria dos jogos é feita neste modo. Você pode 
utilizar sprites e desenhar pontos (chamados reticulas) em qualquer lugar da tela que tem 
256 x 192 pontos, Cada conjunto de oito retículas tem sua própria cor de primeiro e de 
segundo plano. A maioria dos exemplos deste capítulo será feita neste modo. 


96 


Gráficos 


91 


— Modo 3, gráficos de baixa resolução. A tela deste modo apresenta apenas 64 x 48 pontos, 
o que o toma inútil para muitas aplicações. Porém, cada retícula tem sua própria cor e 
podem ser utilizados sprites à vontade. 

No programa “PREMEI” você teve uma noção do que pode ser feito no modo 2. Este capítulo 
cobrirá todos os aspectos de gráficos disponíveis no MSX-BASIC. 


Cor 


Você poderá estar cansado das letras brancas em fundo azul vistas até agora. Apesar de o 
mundo ser “uma aquarela colorida”, o MSX-BASIC ainda não demonstrou isto, A parte mais 
simples na programação de um gráfico é o controle da cor através do comando COLOR. A 
estrutura do comando COLOR é 


COLOR primeiroplano,segundopiano, contorno 

Cada um dos argumentos pode variar de 0 a 15, 

A Tabela 11.1 apresenta as cores disponíveis. As cores estão listadas para um aparelho 
de televisão regulado para uma apresentação normal. Este, normalmente, é mais brilhante do 
que se deseja para uma imagem computadorizada, de modo que é bastante usual diminuir o brilho 
e aumentar o contraste quando se utiliza um aparelho de televisão como terminal de computador. 
Ao fazer isto a matiz e a saturação da cor vão-se alterar bastante. Em outras palavras, pode ser 
necessário que você construa sua própria tabela de cores. 


Tabela 11.1 Cores do MSX-BASIC. 


Número Cor 


1 Preto 

2 Verde-médio 

3 Verde-claro 

4 Azul-escuro 

5 Azul-médio 

6 Vermelho-escuro 

7 Azul-claro 

8 Vermelho-médio 

9 Vermelho-claro 

1 0 Amarelo -escuro 

1 1 Amarelo-claro 

12 Verde-escuro 

1 3 Roxo 

14 Cinza 

1 5 Branco 

0 Transparente (o primeiro plano terá a cor do segundo plano) 



VSX Guia do Usuário 


98 


No modo 0, o texto que você programa não tem cor de contorno. Neste modo você pode 
formar 256 pares de cores de primeiro/segundo plano. Muitos destes pares não são interessantes 
porque as cores slo muito semelhantes, tomando o texto ilegível, ou porque as cores contrastam 
muito, O programa que segue fornece alguns exemplos de pares de cores. 

10 REM Experiência com pares decores 
20 CLS 

30 PRINT "Este texto e padraor (15,4)" 

40 GOSUB 1000 
50 COLOR 10,6 

60 PRINT "Muitas pessoas acham isto agradavel (10 6)" 

70 GOSUB 1000 
80 COLOR 1,15 

90 PRINT "Preto sobre branco (1,15), mas as letras borram" 

100 GOSUB 1000 
110 COLOR 4,15 

120 PRINT "Azul-escuro sobre branco (4,15), uma boa escolha” 

130 GOSUB 1000 
140 COLOR 12,6 

150 PRINT "Péssima combinacao (12,6)" 

160 GOSUB 1000 
170 COLOR 10,6 
180 END 

1000 REM Aguarde 3 segundos 
1010 TIME = 0 

1020 IF TIME < 150 THEN GOTO 1020 
1030 RETURN 


Em seguida temos um programa que percorre todas as combinações de cores. Observe que quando 
as cores de primeiro e segundo plano forem as mesmas não é possível ver o texto. 


10 REM Selecao de cores 
20 KEY OFF 
30 CLS 

40 FOR N = 1 TO 23 
50 PRINT STRING$(39,"X"); 

60 NEXT N 

70 REM B = segundo plano, F = primeiro plano 
80 LOCATE 0,0 
90 PRINT "F = " 

100 PRINT "B = " 

1 10 REM Percorra todos F's para todo B 
120 FOR B= 1 TO 15 
130 LOCATE 2,1 
140 PRINT USING B 


Gráficos 


99 


150 FOR F = 1 TO 15 
160 LOCATE 2,0 
170 PRINT USING F 

180 COLOR F,B 
190 TIME = 0 

200 IF TIME < 75THEN GOTO 200 
210 NEXTF 
220 NEXTB 

230 REM Tudo completado 

240 CLS 

250 COLOR 15,4 


GRÁFICOS NO MODO 2 

Uma vez vistas as cores que o MSX-BASIC coloca a sua disposição, devemos iniciar a utili- 
zação de gráficos no modo 2. O primeiro comando necessário é o comando SCREEN, que muda 
de um para outro modo de tela. Sua estrutura é 

SCREEN modo 

Neste caso “modo” é o número do modo desejado. Assim fica explicada a linha 80 do programa 
“PRIMEI”; ela coloca a tela no modo 2. 

No modo 2 o comando COLOR seleciona os valores das cores do primeiro e do segundo 
plano. É possível a existência de várias cores no primeiro plano da tela ao mesmo tempo, como 
foi visto nos retângulos coloridos do programa “PRIMEI”. 

Muitos dos comandos que desenham na tela, em medo 2, podem determinar a cor do 
primeiro plano, enquanto durar a execução do comando, sendo que isto não a transforma na 
cor fundamental do primeiro plano. Caso você não especifique uma cor, a cor atual do primeiro 
plano é a utilizada. 

Após a utilização do comando COLOR para estabelecer a cor do segundo plano no modo 2, 
deve ser utilizado o comando CLS para aparecer cor na tela. Por este motivo é que, nos programas, 
encontramos linhas do tipo 

210 COLOR ,1: CLS 

No modo 2 não há equivalentes para a função POS e a variável CSRLEN: cuidado, não se 
esqueça onde está o cursor, não existe nenhum comando ou função que o auxilie. O MSX-BASIC 
fornece a função POINT que informa a cor de uma determinada retícula. A estrutura da função 
POINT é 


POINT (x,y) 


Como já é de seu conhecimento, seu valor varia de 0 a 15, dependendo da cor no ponto (x,y). 


100 


MSX Guia do Usuário 


Ao programar, lembre-se de que cada conjunto de oito retículas horizontais pode ter apenas 
uma cor de primeiro plano. Infelizmente, esta limitação restringe um pouco sua liberdade já que 
a alteração da cor do primeiro plano somente poderá ser feita a cada oito retículas. Entretanto, 
com a utilização cuidadosa das cores de primeiro e segundo plano é possível a criação de imagens 
vivas e multicoloridas. 

Considerando que o modo 3 tem uma resolução muito baixa, este capítulo enfoca apenas 
os gráficos em modo 2. Porém, a maioria dos comandos deste capítulo opera da mesma maneira 
no modo 3. 


TRAÇANDO PONTOS 

Lembre-se de que o modo 2 tem uma tela de 256 x 192 retículas. Elas são definidas por 
coordenadas cartesianas iniciando com (0,0) no canto superior esquerdo. A Figura 11.1 mostra 
como se organiza a tela, 

É importante observar que muitos aparelhos de televisão utilizados como terminais de 
computador não mostram todos as retículas da margem esquerda ou direita, dependendo da 
regulagem do aparelho de televisão. Muitos aparelhos não apresentam as retículas das colunas 
0 à 8. 

Em vez de utilizar o comando LOCATE do MSX-BASIC, para movimentar o cursor na 
tela de texto, será utilizado o comando PSET para a movimentação do cursor gráfico no modo 2. 



Figura 1 1.1 Posiçoes na tela gráfica. 


Gráficos 


101 


Observe, porém, que todos os comandos que fazem desenhos na tela em modo 2 geraimente 
alteram a posição do cursor gráfico. O comando PSET além de atualizar a posição do cursor, 
traça uma retícula nesta posição. A estrutura do comando PSET é 

PSET STEP(x,y), cor 

Os argumentos STPE e cor são opcionais. 

O exemplo que segue define o vermelho-escuro (cor 6) como sendo a cor de segundo 
plano e traça um quadrado azul com suas arestas em (100,100), (100,150), (150,150) e (150,100). 

10 REM utilizando PSET 
20 SCREEN 2 
30 COLOR ,6: CLS 
40 FOR Y= 100 TO 150 
50 PSET (1 00, Y), 5 
60 NEXTY 

70 FOR X= 100 TO 150 
80 PSET(X, 150), 5 
90 NEXT X 

100 FOR Y= 150 TO 100 STEP-1 
110 PSET (150,Y), 5 
120 NEXT Y 

130 FOR X= 150 TO 100 STEP-1 
140 PSET(X,100), 5 
150 NEXT X 
160 TIME = 0 

170 IF TIME < 250THEN GOTO 170 

O argumento STEP do comando PSET (assim como os de outros comandos que serão vistos) 
facilita muito o ato de desenhar. Por enquanto foi especificado o local exato de cada retícula. 
Com o argumento STEP os valores de x e y não indicam mais a posição da retícula, mas a relativa 
à posição do cursor gráfico. Por exemplo, a colocação de uma retícula a 30 retículas à direita e 
15 retículas abaixo do cursor gráfico, independentemente de sua posição atual, exige o comando 

PSET $TEP(30,15) 


Para colocar uma retícula à esquerda e duas acima do cursor gráfico, você deve dar o comando 

PSET STEP (-1,-2) 

Observe como isto facilita o traçado do nosso quadrado: 

10 REM utilizando PSETe STEP 
20 SCREEN 2 
30 COLOR ,6: CLS 


102 


MSX Guia do Usuário 


35 PSET(100,100), 5 
40 FOR I = 1 TO 50 
50 PSET STEP(0,1), 5 
60 NEXT I 
70 FOR I = 1 TO 50 
80 PSET STEP(1,0), 5 
90 NEXT I 
100 FOR I = 1 TO 50 
110 PSET STEP(0, -1), 5 
120 NEXT I 
130 FOR 1 = 1 TO 50 
140 PSET STEP(-1,0), 5 
150 NEXT I 
160 TIME = 0 

170 IF TIME < 250 TH EN GOTO 170 

Basta acrescentar a linha 35 para fornecer um ponto de partida e em seguida utilizar o 
loop FOR-NEXT para passar de um ponto ao outro. 

A vantagem da utilização do argumento STEP é a de que podemos movimentar toda a 
figura apenas alterando a posição da primeira retícula. Se você decidir traçar o quadrado ini- 
ciando em (37,91) basta alterar alinha 35 para 

35 PSET(37,91), 5 

Lembre-se de que é possível mudar a cor atual do primeiro plano com o comando COLOR. 
O programa pode sofrer nova simplificação colocando-se a cor do desenho na linha 30, sem 
mencioná-la em outro lugar: 

10 REM Utilizando PSET e STEP 
20 SCREEN 2 
30 COLOR 5,6: CLS 
35 PSET(100,100) 

40 FOR I = 1 TO 50 
50 PSET STEP (0,11 
60 NEXT I 
70 FOR I = 1 TO 50 
80 PSET STEP (1,0) 

90 NEXT I 
100 FOR I = 1 TO 50 
110 PSET STEP (0,-1) 

120 NEXT I 

130 FOR I = 1 TO 50 

140 PSET STEP (-1,0) 

150 NEXT I 
160 TIME = 0 

170 IF TIME < 250 THEN GOTO 170 


Gráficos 


103 


O comando PRESET é similar ao comando PSET. e sua estrutura é a mesma: 

PRESET STEP(x r y), cor 

Os argumentos STEP e cor permanecem opcionais. A diferença entre os dois comandos é que, se 
não for fornecido o argumento cor, o PRESET fará o traçado na cor do segundo plano em vez 
de fazê-lo na cor do primeiro plano. Isto, em essência, equivale a apagar aquilo que existe 
no ponto. 

Se você utilizar a opção da cor, o comando PRESET agirá da mesma forma que o comando 
PSET. Podemos observar que o comando PRESET é similar ao comando PSET com a opção da 
cor, igual à cor do segundo plano. O comando PRESET apenas tem utilidade quando não se 
conhece a cor do segundo plano. 


TRAÇANDO LINHAS E CAIXAS 

O traçado de linhas é um dos procedimentos mais comuns quando você escreve programas 
gráficos. Pode-se tornar monótona a ut&ização do loop FOR-NEXT cada vez que se deseja traçar 
uma linha. Adicionalmente, as linhas traçadas até agora são apenas paralelas à margem da tela. 
Imagine como seria o loop FOR-NEXT para traçar uma linha entre (100,100) e (141,107). A 
matemática se tornaria bem complicada. 

Para facilitar este traçado o MSX-BASIC possui o comando LINE. A estrutura do comando 
LINE é complexa, mas pode ser explicada passo a passo. De maneira similar ao comando PSET, 
a estrutura é 


LINE (xl.yl) - (x2,y2), cor 

Novamente o argumento cor é opcional. Como você percebe este comando traçará uma 
linha de (xl,yl) até (x2,y2). Ao terminar a execução do comando, o cursor gráfico estará em. 
(x2,y2). 

O comando LINE simplifica o programa do quadrado: 

10 REM Utilizando LINE 
20 SCREEN 2 
30 COLOR 5,6: CLS 
40 LINE(100,100) - (100,150) 

50 LINE000.150) - (150,150) 

60 LI NE(150,1 50) - (150,100) 

70 LINE(150,100) - (100,100) 

160 TIME = 0 

170 IF TIME< 250 THEN GOTO 170 


Como se vê, este programa é bem menor do que o origínaL 



104 


MSX Guia do Usuário 


Entretanto, como é comum traçai muitas linhas unidas, o MSX-BASIC fornece uma versão 
mais compacta do comando LINE 

UNE - (x2,y2),cor 

Este comando inicia alinha no local do cursor gráfico. Seu programa pode ser simplificado 

para 


10 REM Utilizando LINE 
20 SCREEN 2 
30 COLOR 5 r 6: CLS 
40 LINEOOO.IOO)- (100,150) 

50 LINE - (150,150) 

60 LINE - (150,100) 

70 LINE- (100,100) 

160 TIME = 0 

170 IF TIME < 250 THEN GOTO 170 

Isto, sem dúvida, é mais simples do que lembrar onde se encontra o cursor gráfico. 

Com o argumento STEP a estrutura fica ainda mais elegante : 

LINE -STEP(x2,y2), cor 

Assim como o argumento STEP do comando PSET, este também toma o seu programa 
mais generalizado. O programa traçado do quadrado ficaria assim; 

10 REM Utilizando LINE e STEP 
20 SCREEN 2 
30 COLOR 5,6: CLS 
35 P$ET(100,100) 

40 LINE - STEP(0,50) 

50 LINE - STEP(50,0) 

60 LINE - STEP(Q,-50) 

70 LINE - STEP(-50,0) 

160 TIME = 0 

170 IF TIME < 250 THEN GOTO 170 

Agora, para mudar a posição do quadrado, basta alterar a linha 35. 

Uma forma menos utilizada do comando LINE é 

LINE STEP(x1,x2) - STEP(x2,y2), cor 

Além do traçado de uma linha, outra atividade comum é o traçado de quadrados (que 
pode estar cansando-o!). Se traçarmos um quadrado que seja paralelo aos lados da tela (como 
até agora), isto pode ser ainda mais fácil com o argumento B no comando LINE. O argumento B 


Gráficos 


105 


aparece depois de cor no comando LINE e faz o MSX-BASIC traçar um quadrado cujos vértices 
opostos sejam (xl ,y 1) e (x2,y2). 

O argumento B reduz o nosso programa para 

10 REM Utilizando LINE e B 
20 SCREEN 2 
30 COLOR 5,6: CLS 
40 LINE(100,100)- (150,150), ,B 
160 TIME = 0 

170 IF TIME < 250 THEN GOTO 170 

Não havendo especificação da cor, devem ser incluídas as vírgulas de modo que o MSX- 
BASIC não tente colorir a linha com o valor de uma variável denominada “B”. O argumento B 
pode ser utilizado também com o argumento STEP: 

10 REM Utilizando LINE e Be STEP 
20 SCREEN 2 
30 COLOR 5,6: CLS 
35 PSET<100,100) 

40 LINE - STEP(50,50), ,B 
160 TIME = 0 

170 I F TI ME < 250 THEN GOTO 1 70 

A linha 40 é um sumário daquilo que você tem feito até agora: traçar um quadrado de 50 x 50. 

Como foi mencionado anteriormente, o comando LINE pode ser utilizado para traçar linhas 
entre dois pontos quaisquer, e não apenas retas paralelas às beiradas da tela. Para traçar um parale- 
logramo basta alterar o programa para 

10 REM paralelogramo 
20 SCREEN 2 
30 COLOR 5,6: CLS 
35 PSET{100,100) 

40 LINE - STEP(0,50) 

50 LINE - STEP{20,30) 

60 LINE-STEP<0,-50) 

70 LINE - STEPÍ-20, -30) 

160 TIME = 0 

170 IF TIME < 250 THEN GOTO 170 

É claro que podemos traçar qualquer forma desejada. O programa que segue traça 100 linhas 
aleatórias pela tela: 

10 REM Tracador de linha randemica 
20 SCREEN 2 
30 COLOR 15,1: CLS 


106 


MSX Cuia do Usuário 


40 A = RND(-TIME) 

50 PSET(O.O) 

60 FOR I = 1 TO 100 
70 UNE - ((RND{1)*255), (RN D (1 >* 1 91 )) 
80 NEXTI 
90 TIME = 0 

100 IF TIME < 250 THEN GOTO 100 


DESENHANDO CÍRCULOS E CURVAS 

É interessante traçar pontos e linhas com o MSX-BASIC, mas o traçado deve refletir melhor as 
imagens que você quer criar. A capacidade de traçar curvas fará suas imagens ficarem mais reais 
Para tanto» o MSX-BASIC fornece o comando CIRCLE. 

Apesar do nome, este comando permite que se tracem diversas formas: circunferências, 
elipses, partes de circunferências (denominadas arcos) e arcos elípticos. Asam como o comando 
LINE, a estrutura do comando CIRCLE é complexa. A forma mais simples do comando CIRCLE 
é aquela que traça uma circunferência: 

CIRCLE STEP(x,y),raio,cor 

Como sempre, os argumentos STEP e cor são opcionais, sendo que o MSX-BASIC traça um 
círculo com o centro no ponto (x,y) e o raio especificado. Caso o argumento STEP seja utilizado, 
o centro será deslocado relativamente à posição atual do cursor gráfico. Após a execução do 
comando CIRCLE, o cursor gráfico é posicionado no centro. 

O programa abaixo traça 25 círculos de raio 10, na tela: 


10 REM 25 Circulas 
20 SCREEN 2 
30 COLOR 1,6: CLS 
40 PR ESET (68,46) 

50 FOR A= 1 TO 5 
60 FOR B - 1 TO 5 
70 CIRCLE STEP(20,0), 10 
80 NEXTB 

90 PRESETSTEP(-1 00,20) 

100 NEXT A 
110 TIME = 0 

120 IF TIME < 500 THEN GOTO 120 


Algumas coisas devem ser observadas a respeito deste programa: 

- Os círculos são traçados com muita rapidez. O MSX-BASIC utiliza uma fórmula especial 
que toma muito eficiente o traçado dos círculos nos computadores MSX; 


Gráficos 


107 


— Os círculos não são exatamente redondos: as bordas são grosseiras. Isto se deve ao fato 
de as retículas da tela terem um tamanho finito, O traçado de curvas com retículas 
sempre provocará as irregularidades vistas na circunferência; 

— Quando as circunferências se tocam, as irregularidades ficam mais aparentes. Se estiver 
utilizando um aparelho de televisão, observe que os pontos em que as circunferências 
se encontram não são iguais; à medida que se deslocam pela tela, as junções parecem 
diferentes. Isto se deve ao fato de o aparelho de televisão não apresentar da mesma forma 
diferentes pontos coloridos. Procure alterar as cores da linha 30 e observe como estes 
pontos de encontro se alteram; 

- O MSX-BASIC não traça o ponto central porque o programa utiliza PRESET em lugar 
de PSET. O comando PRESET é utilizado apenas pçra movimentar o cursor gráfico, e 
não para fazer traçados. 

Pela adição de dois argumentos após cor, o comando CIRCLE permite o traçado de arcos: 
CIRCLE STEP(x,y),raio,cor,angulinic,angulfin 

Angulinic e angulfin são medidos em radianos. O que segue é uma lição de trigonometria, 
caso você nunca tenha aprendido (ou tenha esquecido) como medir ângulos em radianos. 

Provavelmente você se lembra de que a circunferência está dividida em 360 graus, Como 
contagem, o grau é o ponto do círculo logo à direita do centro. Assim, 90 graus está para 
cima, 180 graus está à esquerda e 270 está para baixo. Existem 2* pi radianos em um círculo 
(pi <-= 3.14159). 

Isto significa que 360 graus equivalem a 6.28318 radianos, ou: 

1 radiano =57,2958 graus 
1 grau =0.01745 radianos 

A Figura 1 1.2 mostra um círculo com ambos, radianos e graus. 

Para traçar um arco, você deve conhecer o começo e o fim do arco em radianos. Já que a 
maioria das pessoas pensa em termos de graus e não de radianos, é prático ter no programa um 
fator de conversão. Por exemplo, para traçar um arco a partir de 45 (1:30 no relógio) até 

135 graus (10.30), com o centro em (80,60) e com um raio de 25, seria utilizado o seguinte 
comando: 


RC = 0.01745 

CIRCLE(80,60), 25, ,45*RC,135*RC 
Isto é indicado na Figura 11.3. 

A ordem dos ângulos de início e fim é importante. A Figura 11.4 mostra o resultado caso 
tenham sido invertidos os ângulos inicial e o final: 


CIRCLE(80,60), 25, ,135*RC,45*RC 


108 


MSX Guia do Usuário 



270° = 4.712 rad 


Figura 1 1.2 Medindo ângulos em radianos. 


A elipse é um círculo alongado em uma direção. Imagine um quadrado que envolva uma 
circunferência e toque esta circunferência em cada lado. Se o quadrado fosse esticado em forma 
de um retângulo, a circunferência se transformaria em uma elipse. 0 comando CIRCLE permite 
que você desenhe uma elipse, especificando a relação dos lados do retângulo chamada relação 
de aspecto. 

A estrutura para esta forma de comando do CIRCLE é 
Cl RCLE STEP(x,y),raio í cor,anginic,angfin,aspecto 

Se forem incluídos os dois ângulos o MSX-BASIC fará um arco elíptico. No comando 
CIRCLE a relação de aspecto é a relação entre altura e largura. Se a relação de aspecto for maior 
do que 1 a elipse será vertical e estreita; se menor do que 1, a elipse será horizontal e larga. 



Figura 11.3 Arco de 45° a 135°. 


O raio será sempre a medida mais longa da elipse, significando que a curva traçada com o 
comando CIRCLE sempre caberá dentro do círculo que seria traçado se o argumento “aspecto” 
fosse excluído (vega Figura 1 1 .5). 


Gráficos 


109 



Figura 11.4 Aico de 135° a 45°. 



Figura 1 1.5 Relações de aspectos. 


O programa que segue é uma modificação do programa anterior que traçou 25 circunfe- 
rências Este programa desenha 25 elipses verticais e 25 horizontais. 

10 REM 25 Elipses verticais e depois horizontais 
20 SCREEN 2 
30 COLOR 1,6: CLS 
40 PRESET(68,46) 

50 FOR A = 1 TO 5 
60 FOR B = 1 TO 5 


110 


MSX Guia do Usuário 


70 CIRCLE STEP<20,0), 10, . , , 2 
80 NEXTB 

90 PRESETSTEPM 00,20) 

100 NEXTA 
110 TIME =0 

120 IF TIME < 500THEN GOTO 120 
130 CLS 

140 PRESET(68,46) 

150 FOR A = 1 TO 5 
160 FOR B = 1 TO 5 

170 CIRCLE STEP(20,0), 10 5 

180 NEXTB 

190 PRESETSTEPf-1 00, 20) 

200 NEXTA 
210 TIME = 0 

220 IF TIME < 500THEN GOTO 220 


Observe que as três vírgulas entre o raio e a razão de aspecto contêm os Locais da cor e dos 
dois ângulos. 


PINTANDO 

Uma das características gráficas mais avançadas do MSX -BASIC é sua habilidade em pintar 
uma área qualquer com uma cor. Até agora todas as figuras que você traçou foram feitas com 
linhas; o comando PAINT fornece-lhe uma maneira simples de preencher uma área fechada com 
uma cor 

No modo 2 o comando PAINT pinta a região com a mesma cor do contorno. A estrutura 
do comando PAINT é 

PAINT STEP(x,y),cor 

Os argumentos STEP e cor são opcionais. O ponto (x,y) é onde deve ser iniciada a pintura. No 
comando PAINT “cor” é a mesma do contorno sendo somente necessária se não for a mesma cor 
que a do primeiro plano. 

O programa abaixo traça um círculo de centro em (100,100) com raio 60 preenchendo-o 
no final. 


10 REM Pintando 
20 SCREEN 2 
30 COLOR 15,6: CLS 
40 CIRCLE(100,100), 60 
50 PAINT STEP{0,0) 

60 TIME = 0 

70 IF TIME < 250 THEN GOTO 70 


Gráficos 


111 


0 comando PAINT da linha 50 se aproveita do fato de o comando CIRCLE deixar o cursor 
gráfico no centro da circunferência. O comando PAINT pode ser iniciado em qualquer parte 
dentro da região a ser pintada. Por exemplo, a linha 50 poderia ser alterada paia 

50 PAI NT{ 120,80) 

e o resultado seria o mesmo. 

A única exigência com respeito ao comando PAINT é a de que a região que estiver sendo 
pintada deve ser completamente fechada. Isto é, não deve existir abertura alguma nem mesmo 
uma única retícula — ou o comando PAINT derramará pintura por toda tela. Por exemplo, 
altere o programa anterior de modo a acrescentar uma falha no contorno e observe o que ocorre: 

10 REM Pintando com uma falha 
20 SCREEN 2 
30 COLOR 15, 6: CLS 
40 CIRCLE(100,100),60,0,1. 5*3.141 59 
45 PRESET(100,160) 

50 PRINT(100,100) 

60 TIME = 0 

70 IF TIME < 250THEN GOTO 70 

O MSX-BAS1C sempre encontra a falha, não importando o seu tamanho. Entretanto, a falha 
é definida como um espaço de retículas com a mesma cor do segundo plano. Mesmo que as 
retículas sejam quadradas, a diagonal entre duas delas nãoé considerada uma falha. À Figura 11.6 
mostra o que o MSX-BASIC considera ou não uma falha. 




Figura 11.6 Pintura com e sem falhas. 





112 


MSX Guia do Usuário 


Se você estiver traçando retângulos e preenchendo-os com cores, não será preciso utilizar o 
comando PAINT, pois existe um argumento do comando LINE que preenche os retângulos. 

Da mesma forma que o argumento B cria um quadrado, o argumento BF desenha um quadrado 
cheio. Assim, o comando; 

290 LINE-STEP{20,50), 13 r BF 

traça um retângulo cheio, de 20 x 50 pontos na cor roxo, iniciando-o na posição atual do cursor 
gráfico. 


FAZENDO DESENHOS 

O comando DRAW do MSX-BASIC toma o traçado de desenhos mais fácil do que com 
comandos múltiplos PSET e LENE. Em vez de utilizar os comandos do MSX-BASIC, o comando 
DRAW tem sua linguagem própria, denominada “Graphics Macro Language’ 5 ou GML. Os 
comandos GML são colocados em uma série em vez de linhas separadas, e o comando DRAW 
traça a imagem. 

O comando DRAW é muito simples: 

DRAW série 

Existem muitos comandos GML que podem ser colocados em uma série. Existe ainda a possibili- 
dade de se misturar os comandos DRAW com outros comandos gráficos do MSX-BASIC. Na 
Tabela 11.2 estão resumidos os comandos GML que são discutidos em detalhes neste capítulo. 

Um ponto e vírgula pode separar cada comando dentro de uma série apesar disso não ser 
necessário na maiona dos casos. A utilização do ponto e vírgula é sempre uma garantia. Os 
comandos podem ser digitados tanto em maiusculas como em minúsculas (nos exemplos são 
utilizadas letras minúsculas) e, se quiser, você pode utilizar um espaço entre eles. Após cada 
comando o cursor gráfico é reposicionado. 

Os comandos mais simples são U, D, L e R. Para traçar um quadrado de 35 x 20 retículas 
seria dado o comando ’ 

DRAW "r35d20 135 u20" 

Os comandos E, F, G e H traçam linhas com ângulos de 45 graus. A Figura 11.7 mostra os 
ângulos que estes comandos utilizam. Por exemplo, o comando abaixo traçará um catavento; 


DRAW "e5d515f515u5g5u5r5h5r5d5" 

O comando M do GML é muito parecido ao comando PSET do MSX-BASIC. Pela colocação 
de duas coordenadas, após o M, indicamos um movimento absoluto: 


DRAW "ml 00,3 5; u10" 


Gráficos 


113 


Tabela 1 í .2 Sumário de comandos GML. 


Comando 

Significado 

Un 

Suba n retículas 

Dn 

Desça n retículas 

Ln 

Vá para esquerda n retículas 

Rn 

Vá para direita n retículas 

En 

Suba e vá para direita n retículas 

Fn 

Desça e vá para direita n retículas 

Gn 

Desça e vá para esquerda n retículas 

Hn 

Suba e vá para esquerda n retículas 

Bcomando 

Faça o próximo movimento sem desenhar 

Ncomando 

Volte para a origem após o próximo comando 

Mx,y 

Vá até (x,y) 

An 

Gire n*90 graus 

Sn 

Faça a escala n/4 

Cn 

Mude a cor para n 

Xsérie 

Execute macro em série 


U 



Figuia 11.7 Movimentos do comando DRAW. 


114 


MSX Guia do Usuário 


Pela colocaçao de um “+” ou de um antes da coordenada x indicamos movimentos relativos. 
Para mover 3 pontos paia a esquerda e 10 para baixo, dê o comando 

DRAW "2m-3,10" 

Para movimentar 50 pontos para a direita e 20 para cima, dê o comando 
DRAW "m + 50,-20" 

Uma vez que o argumento ao comando DRAW é uma série, é fácil colocar esta série em 
uma variável e utilizar a variável no comando DRAW. Já que as variáveis séries podem ser 
concatenadas, muitos traçados podem ser feitos com facilidade. Por exemplo: 

20 PW$ = JJ e5d5l5f5l5u5g5u5r5h5r5d5" 

250 DRAW PW$ + "m-20,-20"+PW$ 

Os comandos B e N, em verdade, são prefixos para outros comandos GML. O prefixo B 
informa ao comando DRAW para que não faça traçados enquanto estiver executando o comando 
seguinte. Por exemplo, altere a linha 250 do exemplo anterior para: 


250 DRAW PW$ + "bm-20,-20''+PW$ 


Isto impede que a linha entre os dois cataventos seja desenhada. 

. 0 P reflxo N informa ao comando DRAW para que volte ao começo do desenho após o 
próximo comando. Por exemplo, uma maneira simples de desenhar uma seta cuja extremidade 
está no cursor gráfico, é com o comando 

DRAW "nl20nh20ng20" 

Isto também deixa o cursor gráfico no local em que estava antes do início do comando. 

O comando de cor, C, permite a colocação da cor do primeiro plano, É como utilizar o 
comando COLOR apenas com o primeiro argumento. Por exemplo, colocar a cor do primeiro 
plano em preto e desenhar um quadrado, poderia ser feito com o comando 

280 DRAW "cl ulOrlOdIÜl 10" 

A linguagem GML tem dois comandos interessantes que toma o traçado de desenhos muito 
maL flexível do que com PSET e LINE. O comando A altera o ângulo em que o desenho é feito. 

a0 é a onentaçao normal, “al” gira todos desenhos seguintes em 90 graus no sentido do 
relógio, “a2” gira em 180 graus, e “a3” gira-os em 270 graus. 

Para sentir a utilidade do comando A, assuma que gastou muito tempo em um desenho GML 
de um carro cujo chassi esteja paralelo à parte inferior da tela. Mais adiante em seu programa, 

decidiu que quer desenhá-lo de lado. Em vez de reescrever todo GML do carro, basta adicionar 
o comando “al” ao início: 


Gráficos 


115 


100 CAR$ = "...(algumas séries complexas)..." 

500 REM Desenhe o carro normalmente 

510 DRAW CAR$ 

800 REM Desenhe o carro de lado 

810 DRAW "ai "+CAR$ 

O comando S também dá grande flexibilidade. Permite alterar a escala de um desenho. Após 
um comando S, o desenho foi reduzido para uma escala de um quarto do argumento do coman- 
do S. Assim, “S8” indica ao comando DRAW para aumentar o desenho em duas vezes; “S2” 
indica que o desenho deve ser diminuído pela metade. 

Continuando com o exemplo do carro, imagine que CAR$ desenhou um cano com o 
tamanho da tela. Mais adiante no programa há necessidade de uma imagem do carro no canto 
inferior direito da tela, com um quarto do tamanho. Imagine que todos os comandos M na 
série CARS utilizaram movimentos relativos, basta, então dar o comando: 

1270 DRAW "ml 28,86; si; "+CARS 

O comando X não tem muita serventia, uma vez que apenas permite a utilização de outra 
série no comando DRAW. A facilidade de concatenar a série é a mesma mostrada nos exemplos 
anteriores. 

Em qualquer comando GML que aceita valores, podemos dar nome de variáveis substi- 
tuindo o valor com um sinal de igual, seguido pelo nome da variável e um ponto e vírgula. Por 
exemplo, se desejasse que uma série genérica fizesse um quadrado, poderia utilizar: 


“t ** XO; d = YQ; 1 = X0; u = X0; " 


Ao ver esta série, DRAW substitui as variáveis do MSX-BASIC X0 e Y0 na série. 

Como podemos observar, o comando DRAW fornece uma grande flexibilidade aos seus 
comandos de desenho. A melhor maneira de aproveitar esta vantagem é pela colocação de todos 
os comandos em variáveis e utilização apenas de movimentos relativos. Você verá que o seu tempo 
de programação com o comando DRAW será bem menor do que aquele com os comandos 
PSET e LENE, 


Apresentando Texto em Modo 2 

Você deve ter observado que não foi feita nenhuma menção de como colocar texto na tela. 
Infelizmente, o MSX-BASIC não tem uma maneira elegante de colocar texto na tela. O método 
descrito aqui se apóia em comandos que nada têm a ver com gráficos. Entretanto, como é bem 
provável que você queixa texto na tela ao programar com gráficos, verá que a informação seguinte 
será útil. 


116 


MSX Guia do Usuário 


do " a “!* de 8ráfKO - vocl teri dt a P ren(le[ «“ POMO sobre os dispositivos 

wcv t aíiÍ^Í ' Dls ? osltlvo é a paüvK P ara ura item de hardware que pode ser acessado pelo 
M5A-BAML. As principais características dos dispositivos são: 

Um dispositivo é inicializado com o comando OPEN. Este comando informa ao MSX- 
BASIC que voce quer acessar um dispositivo. Após utilizar o dispositivo, pode-se dar o 
comando CLOSE, mfoimando ao MSX-BASIC que não se quer mais acessá-lo. 

Alguns dispositivos podem receber informação, outros enviam informação, e alguns 
azem ambos. Se um dispositivo pode receber informação, voce abre para saída (signifi- 
cando que o MSX-BASIC enviará dados para o dispositivo); caso ele apenas envie infor- 
mação, voce o abre para inserção de dados; e se ele pode fazer ambos, será aberto para 
acesso randômico. r 

Muitos comandos do MSX-BASIC podem enviar informação para (ou receber informação 
de) um dispositivo. 0 modo mais primitivo de enviar informação para um dispositivo é 
utilizando o comando PRINT, e o mais primitivo de receber informação é utilizando os 
comandos INPUT ou LINE INPUT. 

Iít° D d í POSÍtÍVO íem Uma ^omüiação. Por exemplo, a tela de gráficos é denominada 
GRP: , e o cassete é denominado “CAS: 

Ao micializar um dispositivo, você lhe fornece um número, que é utilizado em todos 
os comandos do MSX-BASIC que se comunicam com o dispositivo. 

Isto poderá parecer mais complicado que os comandos normais MSX-BASIC, mas ficará mais claro 
com os exemplos posteriores. 

° dispositivo que nos interessa no momento * a tela de gráficos. Se você deseja escrever 
nesta tela, o MSX-BASIC saberá que qualquer texto enviado ao dispositivo “GRP’: ” deverá ser 
visto na tela em modo 2. 

Voce pode abrir a tela “GRP; " somente para saída, uma vez que serão enviadas apenas 
mtormaçoes para ela. A estrutura do comando OPEN é: 

OPEN nomedes FOR acesso AS # num des 


Neste caso “nomedes” é “GRP: ” 


acesso é OUTPUT”, O “numdes” é o número designado 


, - - • ” a, uuiwo s. <-> uuuiçiu UCMgliaUO 

ao dispositivo que será utilizado nos comandos MSX-BASIC. Cada dispositivo deve ter um número 
diferente, sendo que o 0 i reseivado ao MSX-BASIC. Ji que o comando OPEN ainda nío foi 
utilizado por você, utilize 1 como “numdes”. Assim, o seu comando OPEN fica: 

OPEN “GRP: " FOR OUTPUT AS#1 

O único comando que você precisa conhecer para imprimir informação na tela de gráfico 
em modo 2 é o PRINT. A única diferença entre este PRINT e qualquer um dos outros que você 
aprendeu no Capitulo 10 é que foi incluído o número do dispositivo seguido por uma vírgula 

ogo após a palavra PRINT. Por exemplo, se você utilizou a linha abaixo em modo 0 para 
apresentar texto: y 


Gráficos 


117 


260PRINT "Pontos:" 

em modo gráfico 2, basta colocar “#1,” após a palavra PRINT: 

260 PR I NT# 1 f ' J Pontos: " 

Agora é possível imprimir texto na tela de gráfico, 0 canto superior esquerdo do primeiro 
caractere impresso aparecerá no cursor gráfico. Por exemplo, para adicionar uma mensagem na 
parte inferior do exemplo dos 25 círculos, acrescente o comando OPEN: 

15 OPEN "GRP:" FOR OUTPUT AS #1 


e as linhas: 


103 PRESET(90,150) 

106 PR INT#1 r "25 círculos" 

Se desejar, poderá alterar a cor do texto, como: 

104 COLOR 12 

Existem algumas diferenças para imprimir neste modo na tela A idéia principal é a de que 
qualquer imagem embaixo dos caracteres será simplesmente sobreposta e não apagada. Caso 
você faça uma impressão em um local em que já exista o texto, o texto antigo não será eliminado. 
Também a impressão de espaços não eliminará outros desenhos. 


Sprítes 

Os sprites são figuras que tomarão bem mais simples elaborar jogos e animação com o MSX- 
BASIC. São imagens especiais que você pode manipular, podendo ser movimentados pela tela 
sem interferir nas outras imagens. Por exemplo, você pode mover um sprite pela tela, e a imagem 
desenhada não será apagada pelo movimento do sprite. 

A utilização do$ sprites em toda sua riqueza requer um conhecimento da operação interna 
de seu computador MSX que está além do contido neste livro. Os comandos relacionados aos 
sprites, bem como alguns exemplos de sua utilização, são mostrados neste capítulo para aguçar 
seu apetite para experiências posteriores. Caso haja interesse, com certeza o manual de seu 
MSX-BASIC lhe fornecerá maiores informações sobre como programar com sprites. Vamos 
começar. 

O comando SCREEN tem um segundo argumento que controla os tamanhos dos sprites 
Sua estrutura é: 


SCREEN modo.tamanhosprite 


118 


MSX Guia do Usuário 


A variável tamanhosprite terá de ser 0, 1, 2 ou 3; a Tabela 11.3 descreve cada um deles. Na 
discussão que se segue, estamos assumindo como padrão o valor 0. A cada comando SCREEN, 
toda informação sobre os sprites é destruída para que haja a certeza de que o sprite solicitado 
com o comando SCREEN seja montado corretamente. 

Você pode fornecer um número para cada sprite. Podem existir até 64 (ou 256) sprites, 
numerados de 0 a 63 (ou 255). Ao acessar um sprite com os comandos neste capítulo, sempre 
se utiliza o número do sprite. 

A imagem assumida por um sprite é mantida em uma área de memória, reservada unica- 
mente para sprites. Não é possível utilizar os comandos gráficos para definir a forma do sprite; 
é obrigatório o uso de dados em série e a função SPRITES, Cada sprite tem oito caracteres de 
comprimento; na montagem de um sprite, o MSX-BASIC verifica os bits no valor ASCII de cada 
caractere. Veja a Figura 11.8. 

Tabela 1 1.3 Argumento do tamanho do sprite no comando SCREEN. 

Valor Significado 

0 Cada sprite tem 8x8 pontos, com 8 bytes de dados. 

1 Cada sprite tem 8x8 pontos com 8 bytes de dados, sendo que 

o sprite é aumentado em 2x na tela. 

2 Cada sprite tem 16 x 16 pontos, com 32 bytes de dados. 

3 Cada sprite tem 16x16 pontos, com 32 bytes de dados, sendo 

que o sprite é aumentado em 2x na tela. 


Caractere 1 
Caractere 2 
Caractere 3 
Caractere 4 
Caractere 5 
Caractere 6 
Caractere 7 
Caractere 8 



Figura 1 1.8 Definição do sprite. 


Gráficos 


119 


Caractere 1 
Caractere 2 
Caractere 3 
Caractere 4 
Caractere 5 
Caractere 6 
Caractere 7 
Caractere 8 



bits 11111111 
bits 10000001 
bits 10111101 
bits 10100101 
bits 10100101 
bits 10111101 
bits 10000001 
bits 1 1 1 1 1 1 1 1 


Figura 11.9 Esboço do exemplo de sprite, 

Ao definirmos a forma do sprite, cada bit com o valor 1 se apresenta como um ponto ligado; 
cada bit que é um 0 é transparente, significando que, ao movimentar o sprite pela imagem, a 
imagem pode ser vista através do sprite nos locais em que existir um bit 0. Para desenhar uma 
figura com 8x8 ponto, é mais fácil esboçá-la em uma grade, utilizando em seguida o operador 
binário “&B” para melhor visualização. 

Por exemplo, a Figura 1 1 .9 mostra um sprite consistindo em dois quadrados, 0 programa 
que segue monta a variável Sl$ com um sprite. 

100 BIS = CHR$<8eB1 1111111) 

110B2$= CHR$(&B 10000001} 

120 B3$ = CHR$(&B101 11101) 

130 B4$ = CHR$(8tB10100101) 

140 SÍ $ - BI $+B2$+B3$+B4$+B4$+B$3+B$2+B$1 

Uma vez definido SIS, podemos utilizar a função SPRITE-S para armazenar o valor do 
sprite. A estrutura da função sprite é: 

SPRITE$(numimag) = série 

Vamos assumir que você quer armazenar isto no sprite de número 5. Seria então dado o 
comando: 


150 SPR ITE$(5) = S1$ 

O comando PUT SPRITE permite que se coloque e movimente o sprite na tela. Ainda é 
possível alterar sua cor, assim como o número de plano efn que está. A primeira utilização para 



120 


MSX Guia do Usuário 


o comando PUT SPRITE é fornecer ao número do sprite um número de plano. Sua estrutura 
para esta indicação é: 

PUT SPRITE num plano , , , numsprite 

Para este programa, adote o número do plano 1. Assim, seu comando será: 

160 PUT SPRITE 1,,,5 

Quando queremos movimentar o sprite pela tela, utilizamos a seguinte estrutura: 

PUT SPRITE num plano,STEP(x,y),cor 

Pode parecer um pouco maçante, mas os argumentos STEP e cor são opcionais, Se for dado 
o argumento cor, todos os pontos com 1 serão coloridos. Por exemplo, para colorir o sprite de 
cinza e colocá-lo no centro da tela, dê o comando: 

170 PUT SPRITE1,(1 28,96), 14 

Agora estamos prontos para movimentar o sprite pela tela com o comando PUT SPRITE. 
Isto poderá ser observado em cores, no programa abaixo, a primeira parte do programa desenha 
um fundo complexo, a segunda parte (das linhas 100 até 170) são as linhas, do exemplo anterior, 
e a terceira parte permite que o sprite seja movimentado com as teclas de controle do cursor.” 
Para movimentar o sprite, acione uma das teclas com uma seta; para parar o programa acione 
a tecla RETURN. 

10 REM Exemplo de sprite 

20 SCREEN 2,0 

30 COLOR 11,8: CLS 

40 REM Coloque alguns gráficos na tela 

50 GOSUB 500 

60 GOSUB 600 

100 B1$ = CHR$(&B1 1 111111) 

110 B2$= CHR$<&B1 0000001) 

120 B3S= CHR$(&B10111101) 

130 B4$= CHR$(&B10100101) 

140 S1$= B1$+B2$+B3S+B4+B4$+B3$+B2$+B1$ 

150 SPRITE$(5} = S1$ 

160 PUT SPRITE 1,,, 5 
170 PUT SPRITE 1,(128,961,14 
200 REM Rotina de entrada de teclado 
210 K$ = INPUTSO) 

220 REM Verifique o RETURN 

230 IF K$ = CHR$(13) THEN GOTO 390 

240 ON(ASC(K$)-27) GOSUB 270,300,330,360 


Gráficos 


m 


250 PUT SPRITEl, $TEP(X,Y) 

260 GOTO 200 

270 REM operado para a direita 
280 X = 2: Y = 0 
290 RETURN 

300 REM Pressionado para esquerda 
310 X = -2: Y = 0 
320 RETURN 

330 REM Pressionado para cima 
340 X = 0: Y * -2 
350 RETURN 

360 REM Pressionado para baixo 

370 X = 0: Y = 2 

380 RETURN 

390 REM Saia do programa 

400 COLOR 15,4 

410 END 

500 REM Muitos quadrados coloridos 
510 A = RND(-TIME) 

520 FOR I = 1 TO 45 

530 LINE(RND(1)*255,RND(1 )*192) - STEP 
(20,40), (I MOD 15), BF 
540 NEXT I 
550 RETURN 

600 REM Acrescente um texto 

610 REM Elimine uma barra na parte superior 

620 LINE(0,0) - (255,81,1, BF 

630 OPEN "GRP:" FOR OUTPUT AS # 1 

640 PSET(5,0),1 

650 PRlNT#1,"Utili ze setas para movimentar" 

660 RETURN 

Caso queira experimentai com outras figuras, procure alterar as linhas 100 até 150. Por 
exemplo, as linhas que seguem fazem um quadrado sombreado. 


100 Bl$ = CHR$(&B10101010) 

110 B2$ = CHR$(&B01010101 ) 

140 S1$ = B 1 $+ B2$+B 1 $+B 2$B 1 $4 B2$+B 1 $+B 2$ 

Se você estiver interessado em algo estranho, o que segue poderia ser utilizado em um jogo 

100 B1$ = CHR$(&B00011000): B5$ = B1$ 

110 B2$= CHR$(&B00100100): B4$= B2$ 

120 B3$ = CHR$(&B0101 1010) 

1 25 B6$ = CHR${&B001 001 00) 


122 


MSX Guia do Usuário 


130 B7$ = CHR$(&B1 1000011) 

135 B8$ = CHfi${&B0 1000010) 

140 S1$= B1$+B2$+B3S+B4$+B5S+B6$+B7$+B8$ 


Para os programadores experientes que forem utilizar os sprites, existem mais dois comandos 
que podem ser usados. 0 comando SPRITE ON permite que uma função especial do MSX- 

AMC SeJ V 18a í a c 6 d€sl,gada> P ulando para uma sub-rotina quando dois sprites se tocam. A linha 
para o qual o MSX-BASIC pula é ativada pelo comando ON SPRITE GOSUB. Caso você esteia 

interessado em continuar neste nível de programação, existem muitas coisas interessantes que 
podem ser realizadas com sprites. 


CAPITULO 

12 


SOM 


Uma das primeiras coisas que chamam a atenção quando entramos em um fliperama 
— mesmo antes de ver os jogos — é o barulho. Escutamos uma cacofonia de extraterrenos mor- 
rendo, monstros mastigando e as canções-tema dos diversos jogos. Com comandos simples do 
MSX-BAS1C é possível descrever programas que produzem os mesmos tipos de sons de alta 
qualidade. 

Alguns computadores MSX. como o CX5M da Yamaha apresentam características musicais 
que excedem aqueles discutidos neste capítulo. Utilize o manual que acompanha o computador 
para saber como utilizar-se deles. Mesmo que você não tenha um destes aparelhos musicais 
avançados, verá que a música (e o barulho) que pode ser criado com os comandos do MSX-BASIC 
é de excelente qualidade. 

São três as características do sistema musical do MSX que o tomam tão poderoso: 

1. A maioria dos computadores domésticos tem apenas uma “voz”, significando que podem 
produzir apenas um som por vez. Os computadores MSX têm três vozes, e assim é possível 
fazer música mais sofisticada. 

2. 0 MSX-BASIC toca música enquanto o programa estiver sendo processado. Significa que 
você pode escrever um fundo musical, que toca durante o processamento do programa, 
sem que haja atraso no processamento. 

3. O computador MSX pode ainda variar as características principais do som que produz. É 
possível adaptar o som criado de modo que aparente diversos instrumentos, ou sons 
complicados para jogos. 

Antes de iniciar as experiências com os programas deste capítulo, deve-se acrescentar um 
alto-falante ao seu sistema: o computador MSX comum não dispõe de tal ampliador próprio. É 
necessário ou um aparelho de televisão, ou um monitor com alto-falante ou ainda um conector 
para “saída de áudio” no computador, que permita sua ligação a um equipamento de som. Caso 
utilize o aparelho de televisão, certifique-se de que o volume está suficientemente alto, permitindo 
que você escute a música que está produzindo. 


123 


124 


MSX Guia do Usuário 


Apenas um Beep 

Antes de escutar todos os sons maravilhosos que existem disponíveis no MSX-BASIC, será 
interessante observar como é produzido o som mais simples. 0 comando BEEP faz exatamente 
aquilo que está implícito em seu nome: emite um pequeno apito no alto-falante. Tem utilidade 
quando se deseja emitir um aviso de alarma ou enfatizar uma mp nsag ^m , 

A estrutura do comando BEEP é: 

BEEP 

Por exemplo: 

400 PRINT "Nao faca isto!” 

410 BEEP 

É possível criar um apito imprimindo o caractere 7 em ASCII. Por exemplo: 

400 PRINT "Nao faca isto!”; CHR$(7) 


Tocando Música 

A maneira mais simples de escrever música no MSX-BASIC é pela utilização do comando 
PLAY. O comando PLAY é como o comando DRAW; utiliza séries (como argumento) que são 
escritos em linguagem própria, que é denominada Linguagem Musical ou Macro, ou LMM. Se 
estiver familiarizado com escalas e os rudimentos musicais, terá muita facilidade na criação de 
música com o comando PLAY. 

A estrutura do comando PLAY é bem simples: 

PLAY série 1 J série2£érie3 

As séries são os comandos LMM para cada uma das três vozes. Caso estej am sendo controla- 
das vozes diferentes da voz 1 , é necessário colocar as vírgulas no comando PLAY para manter 
os lugares. Por exemplo, para tocar uma música na voz 3, dê o comando 

PLAY , , "CDEF” 

As regras que envolvem o LMM são muito parecidas com aquelas do GML. Os comandos 
podem ser separados com espaços ou ponto e vírgula, e podem ser utilizadas variáveis MSX-BASIC 
em vez de argumentos numéricos pela colocaçao de um sinal de igual antes do nome e um ponto 
e vírgula após o nome. Os comandos podem ser dados em letras maiusculas ou minúsculas. Os 
comandos LMM estão resumidos na Tabela 12.1 . 


Som 


125 


Tabela 12.1 Sumário de comandos LMM. 


Comando 


Significado 


Cn 

Dn 

En 

Fn 

Gn 

An 

Bn 

Rn 

# 


On 

Ln 

Tn 

Vn 

Nn 

Mn 

Sn 

Xsérie 


Nota musical, l/n de duração 
Nota musical, l/n de duração 
Nota musical, l/n de duração 
Nota musical, l/n de duração 
Nota musical ,1/n de duração 
Nota musical, l/n de duração 
Nota musical, l/n de duração 
Pausa, l/n de duração 
Sustenido 
Sustenido 
Bemol 

Aumento da duração em 50% 

Oitava( 1-8, padrão é 4) 

Comprimento de nota(l-64, padrão é 4) 
Tempo em quartos de nota por minuto 
(3 2-25 5, padrão é 120) 

Volume(0-1 5, padrão é 8) 

Nota determinada(l-96) 

Período da envoltória(l-ó553$,padrão é 255) 
Forma de onda( 1-1 5, padrão é 1) 

Executa conteúdo da série, 


NOTAS SIMPLES 

Como pode ser visto pela tabela, tocar notas comuns é bem fácil: basta dar o nome da nota 

Por exemplo, para tocar as primeiras notas da canção infantil, “Maria tinha um carne irinho” na 
voz 1, forneça o comando: 


PLAY "edcdeee" 


Ao executar este comando, escutamos estas notas no alto-falante. 


Os sustenidos e bemóis são tão fáceis como as notas básicas. Para elevar 
de uma nota, dê o comando; 


a melodia anterior 


PLAY "fd#c#d#fff" 
ou: 

PLAY "fd+c+d+fff" 


126 


MSX Guia do Usuário 


PLAY J 'e3d3c3d3e3e3e3" 

Podemos especificai comprimentos de 1 a 64 O comandn R r^n»e + 

utilizado exatamente como as outras notas P ™ a paUSa 6 ** * r 

MSX-BASIC coloca'^!* pTu^cntt C ° m ° ° 


TOCANDO MUSICA MAIS AVANÇADA 


„„ d ' C f* 0i ' aVa ^ d f! Iibu i da de C ( nMa d ») >té B (nota si). As oitavas sa '0 numeradas de 1 até 8 

poaerá * - — • * 


PLAY "dca#cddd" 




PLAY "dco3a# o4cddd" 

uteioia “e“::r S COm ° UÜliZaI ^ POr “ empI °- aS d * «» outra 

PLAY "fedc”,"ggbo5co4" 

PLAY "L8" 

Lembre-se de dar o comando “14” para repô-lo. 


Som 


127 


O comando T também altera a velocidade. O padrão é 120, significando 120 quartos de 
nota por minuto. A velocidade pode ser colocada em qualquer ponto entre 32 (lento) e 255 
(rápido). 0 volume pode ser alterado com o comando V. Inicialmente é colocado em 8, mas pode 
ser colocado em qualquer ponto entre 0 (silêncio) e 15 (alto) . 

Se quiser especificar notas como números e não como letras, utilize o comando N. NO é 
a nota mais baixa e N96 a mais alta; o Dó central, representando por 04C, é N36. Isto somente 
tem serventia quando utilizamos variáveis MSX-BASIC. Por exemplo, para tocar notas (incluindo 
sustenidos) na oitava iniciando em 04C, em dezesseis avos, devemos dar o comando: 

420 FOR I = 36 TO 48 
430 PLAY "n = i: 16" 

440 NEXT f 

Os comandos M e S (descritos na próxima seção) alteram a onda sonora produzida pelo 
MSX-BASIC; somente têm utilidade se você tiver um bom conhecimento de como um som musical 
é gerado. Você deve observar que o comando S se sobrepõe ao comando V, de tal modo que não 
é possível colocar o volume após a utilização do comando S. O comando X permite que se utilize 
uma série no comando PLAY. 

É possível também verificar se o MSX está tocando com a função PLAY. Sua estrutura é: 
PLAY(numvoz) 

e retoma -1 (verdadeiro) se houver música na voz “numvoz”. Por exemplo: 

230 I F PLAY(l) THEN GOTO 230 
240 PRINT "Nao ha nada tocando em 1 " 

Utilize 0 como “numvoz” para verificar se existe alguma voz tocando. 


COMO OPERA O COMANDO PLAY 

Para cada comando PLAY, o MSX-BASIC coloca em fila, em um buffer, as notas. Uma vez 
que a música foi colocada no buffer, o MSX-BASIC continuará processando o programa enquanto 
toca a música Na verdade, caso o programa tenha terminado e o MSX-BASIC já deu o “Ok”, o 
buffer musical continuará tocando até ficar vazio. 

Caso você dê um segundo comando PLAY, o MSX-BASIC coloca as notas no buffer. Pre- 
suma, por exemplo, que Ul$ e U2S tenham trechos extensos de música. Se você executar os 
comandos: 


140 PLAY Ul$ 

150 PRINT "Favor manter..." 

160 PLAY U2$ 

170 PRINT "Continue mantendo..." 



128 


MSX Guia do Usuário 


o primeiro comando PRINT será executado enquzn:: i 
estiverem tocando, e será impresso também o segur.'; 
é iniciada logo após o término de UI S. 


--- s a segunda notas de Ul$ 
PRINT, A música de U2$ 


músic a M Z°UIs e fit a $ ií ÍC ‘ e imedlat r en,e ’ é »» Pequeno intervalo na 

musica apos UIS. Esta interrupção poderá ser utürzarfc iíor: supera , tapoeibilidade 

mdta.S" 3S n0 ' a! rePe ‘ Íd “' Pr ° CeSSe ° ír=S73ma - ° bsei ™ dc > ^ Crença 


10 REM Provocando pequenas interrupções 
20 REM Sem interrupção: 

30 PLAY "edcdeeerl ” 

40 REM Com interrupções: 

50 PLAY "edçde": PLAY “e"; PLAY "e" 


resukadc, 0 ’ rUqUe SUSerÍd ° antetiomleme ncste ca P í «*>- P°* « um método simples, mas dá 

rTBt ^“ d “ Ura prog ™ a que este i a toc “ do >■>«** for .-.terrompido pela operação de 

Juv C u^r COmand ° ST0P ™ K " P”*»”* “ P* existência de um erro no 
programa, o MSX-BASIC executa um “bip” e desliga o som. Der, maneira, todas as alterações 

“ TTrun repostas: °' L, T, V, M e S são todos recolocados com seus valores-padrões. 
Um comando BEEP no programa possui o mesmo efeito. 


Fazendo Barulho 


0 comando SOUN D permite que programadores experientes tenham acesso a todas as partes 
do gerador de som do MSX. Esta seção presume que você esteja familiarizado com a formação dos 

sons e a preparaçao dos registradores eletrônicos. Com SOUND é possível criar diversos ruídos e 
eleitos sonoros. 

Com o comando SOUND é possível determinar os valores do circuito Integrado responsável 
pela geraçao de som em seu computador MSX. Sua estrutura é: 

SOUND numreg,valor 


O Weg” é o número do registro, de 0 até 13. O "valor” I o número que deve ser armazenado 
no registro de um byte. A Tabela 12.2 é um resumo dos registros. (Observe que as vozes são deno- 
minadas A, B e C em vez de 1 , 2 e 3 do comando PLAY.) 

2h' 2S‘ ° 6 • fo ™ ai l “ m regÍS,r0 de 12 WtS ( ° S qUatr ° W,S »P«i°»* d o registro 1 na-osão 

sãoTp“ 'da“voz C ã V0Z A; 05 regÍStr0S 2 e 3 f0nnam 0 par da V0Z B ' e 05 re P stros 4 e 5 
equação com o tom desejado. Para determinar o tom utüize a seguinte 


tom = 1 24797/freqüência 


Som 


129 


Tabela 12.2 Resumo dos registros SOUND. 
Número Finalidade 


0 

1 

2 

3 

4 

5 

6 

7 

8 
9 

10 

11 

12 

13 


Tom da voz A, Byte inferior 
Tom da voz A, Byte superior 
Tom da voz B, Byte inferior 
Tom da voz B, Byte superior 
Tom da voz C, Byte inferior 
Tom da voz C, Byte superior 
Controle do gerador de ruídos (0-31) 
Controle do liga/desliga voz e ruído 
Controle de amplitude da voz A 
Controle de amplitude da voz B 
Controle de amplitude da voz C 
Período da envoltória, byte inferior 
Período da envoltória, byte superior 
Forma da envoltória 


Assim, para gerar um som de 440 Hz, o tom será 284. Carregue os registros: 

SOUND 0,29 
SOUND 1,1 

O registro 6 estabelece o período do ruído, criando aspectos diferentes que dependem da situação 
de todos os registros; para efeitos sonoros, principalmente aqueles envolvendo trinados, experi- 
mente este registro. O registro 7 é utilizado para ligar/desligar o ruído e as vozes. A Figura 12.1 
mostra como este registro é formado. Para ativar uma voz (ou um ruído nesta voz) coloque o bit 
correspondente em 0. A colocação deste bit em 1 desliga esta V 02 . Para desligar o gerador de ruído 
e ativar as vozes A e B, dê o comando: 

SOUND 7,&B0O1 1 1 100 


Ruído 

Ruído 

Ruído 

Som 

Som 

Som 

C 

B 

A 

C 

B 

A 


Bit 6 5 4 3 2 1 


Figura 12.1 Disposição do registro 7. 







130 


MSX Guia do Usuário 


Os registros 8 ate 10 controlam a necessidade de utilização do controle de volume ou controle 
da envolt ona/ forma de onda. A Figura 12.2 indica como utilizar estes registros para cada um dos 

casos Os tres bits supenores sao ignorados. Para controle de volume, os bits 1 a 4 variam o volume 
de 0 (baixo) até 15 (alto). 

Os registros 11 e 12 estabelecem o período da envoltória, e o registro 13 a forma de onda. 
rara determinar a freqüência da envoltória, voce pode utilizar a equação: 

•frequência = 7799.8/período 


Para 
controle 
de volume 

Bit 

Envoltória/ 
forma de 
onda 


Bit 


0 

vi 

v2 

v3 

v4 

5 

4 

3 

2 

1 

1 

X 

X 

X 

X 

5 

4 

3 

2 

1 


Figura 12.2 Disposição dos registros de 8 até 10. 


U 'l Ín í Ca ' n0 / a$ f0rmaS de 0nda que P° dem ser utilizadas. Observe que são utilizados 
apenas o$ quatro bits inferiores do registro 13. ^ 



1 I - Período da envoltória 



f = Período da envoltória 




| = período da envoltória 



| | = período da envoltória 





Figura 12.3 Formas de onda do registro 13 (cont). 



132 


MSX Guia do Usuário 


mUlt ° S S ° nS eStranhos e interessantes que podem ser gerados com o comando 
JbUUJND. Tente a expenencia abaixo com a função de ruído: 


10 REM Dirigindoum jipe (exemplo de ruido) 

20 SOUND 6,10 

30 SOUND7,&B001101 10 

40 SOUND8.&B 000001 00 

50 SOUND1,5 

60 TIME = 0 

70 IF TIME < 100 TH EM GOTO 70 
80 BEEP 


Com a utilização do comando SOUND, temos 
comando PLAY. Por exemplo: 


uma melhor vanaçao nos tons do que com o 


10 REM Tons puros 
20 SOUND1 ,0 
30 SOUND7,&B00111110 
40 SOUND8,&B 00 000100 
50 FOR X = 255 TO 0 STEP-1 
60 SOUIMDO.X 
70 NEXTX 
80 BEEP 

à medida que vocé continuar operando com o comando SOUND, verá que existe uma faixa muito 
grande de ruídos interessantes. Apesar de ser necessário muitas tentativas ao se operar com os 
eleitos de muitas vozes, os resultados poderão ser bem compensadores. 


CAPITULO 

13 


OUTRAS INTERFACES 


Os três últimos capítulos nos mostraram que seu computador MSX pode fazer mais do que 
simplesmente processar números. Você viu como ele apresenta e recupera informação, cria gráfi- 
cos, toca música e faz ruídos. Este capítulo abrange processos de entrada e saída do MSX-BASIC 
que aumentam ainda mais a capacidade do seu computador. 

Entre os periféricos existentes, dois dos mais populares para qualquer computador doméstico 
são os acionadores de disco e os joysticks. (O joystick ê um acréscimo muito importante para 
qualquer sistema que é utilizado em jogos.) Uma vez que o MSX-BASIC trata dos arquivos em 
disco como dispositivos de entrada/saida, estes comandos são apresentados neste capítulo. 


Joysticks 

No seu computador MSX existe pelo menos um conector compatível com um joystick do 
tipo Atari; a maioria dos MSX permite conectar dois. Um joystick tem oito posições (para cima, 
paxa baixo, esquerda, direita e diagonais), e um gatilho ou botão que pode ser pressionado. Duas 
funções do MSX-BASIC lêem os botões do joystick e do gatilho. 

Mesmo que você não tenha um joystick, é possível sua simulação com as teclas de controle 
do cursor. Elas não são tão divertidas nem tão precisas como o joystick para, por exemplo, dirigir 
espaçonaves. Apesar disto são úteis. Além das direções fundamentais fornecidas pelo controle 
do cursor, e possível indicar movimentos diagonais pressionando suas teclas ao mesmo tempo. A 
barra de espaço substitui o gatilho. 

A função STICK lê um joystick e fornece um valor numérico de acordo com a direção em 
que foi empurrado. Sua estrutura é; 

STICK(n) 

onde n é o número do joystick que está sendo lido. A Tabela 13.1 fornece os valores de n, e a 
Figura 13.1 mostra os valores possíveis da função STICK, 


133 


134 


MSX Guia do Usuário 


Tabela 13T Conectores do joystick. 

Número Nome 


Teclas de controle do cursor 
Conector 1 do joystick 
Conector 2 do joystick 


A função STRIG tem um valor -1 se o gatilho foi empurrado ou 0 quando não foi. Sua 
estrutura é: 


STRIG(n) 


1 



5 

Figura 13.1 Valores da função STICK, 


onde n é o número do joystick sendo lido (da mesma maneira que na função STICK). 

Já que tanto a função STICK como a função STRIG têm o valor 0 quando nada estiver 
acontecendo, isto poderá ser utilizado em expressões lógicas sem se fazer comparações. Por 
exemplo, a expressão abaixo informa se o gatilho do joystick 1 está sendo operado: 

IF STRIG(1 ) THEN PRINT "Bang bang!" 

Para ver como estas funções operam em um programa, as linhas abaixo substituem as linhas 200 
até 410 no programa de movimentação de sprite do Capítulo 11. O valor da variável JN deve 
ser 0 para a tecla de controle do cursor, ou 1 ou 2 para o joystick. Pressionando-se o gatilho, 
terminamos o programa. 

200 REM Entrada de joystick ou tecla do cursor 
210 IFSTRJG(JN) THEN GOTO 310 
220 D = STICK(JN) 

230 I F D = 0 THEN GOTO 220 
240 IF ((D >= 2) AND (D < = 4)) THEN X = 2 
250 IF ((D > =4) AND (D< = 6» THEN Y = 2 
260 IF ((D >= 6) AND (D < = 8}) THEN X = -2 
270 IF ({D = 8) OR <D= 1) OR <D = 2» THEN Y = -1 


Outras interfaces 


135 


290 PUT SPRITE1, STEP(X,Y) 

295 X = 0: V = 0 

300 GOTO 200 

310 REM Termine o programa 

320 COLOR 15,4 

330 END 

O MSX-BASIC estabelece uma característica interessante para os programadores de jogos 
que utilizam o joystick. Os comandos ON STRIG GOSUB e STRIG ON permitem ao MSX-BASIC 
descobrir quando um gatilho foi pressionado, independentemente de onde você está no programa. 
Caso seu programa utilize estes comandos e o usuário pressione um gatilho, o MSX-BASIC inter- 
rompe o que estiver fazendo e passa para a sub-rotina especificada (procedimentos deste tipo são 
denominados “procedimentos de interrupção”). Isto significa que seu programa poderá estar 
executando outros processos do MSX-BASIC sem estar sempre verificando a função STRIG. 

Para programar o procedimento de interrupção, utilize o comando ON STRIG GOSUB. 
Sua estrutura é; 

ON STRIG GOSUB subr0,subr1,subr2 

Este comando informa ao MSX-BASIC qual sub-rotina deve ser executada quando o gatilho 
0, 1 ou 2 for pressionado. Cada argumento é o número da linha onde se inicia uma sub-rotina. 

O comando STRIG ON também deve ser utilizado para ligar/ desligar a manipulação da 
interrupção; o comando ON STRIG GOSUB apenas informa ao MSX-BASIC onde ir mas não 
para procurar interrupções. As estruturas do comando STRIG ON são as seguintes: 

STRIG(n)ON 

STRIG(n)OFF 

STRlG(n)STOP 

O argumento ON informa ao MSX-BASIC para procurar interrupções do gatilho. Para parar de 
procurar interrupções, utilize o argumento OFF. O argumento STOP informa ao MSX-BASIC 
que continue procurando uma interrupção, mas que nada faça ao encontrar uma. Ao ser dado um 
comando STRIG ON, o MSX-BASIC pula imediatamente para a sub-rotina especificada. 

Por exemplo, o programa abaixo prepara as sub-rotinas para a barra de espaço e o gatilho 1 : 

520 ON STRIG GOSUB 800,900 
530 STRIG(O) ON 
540 STRIG(I) ON 

800 PRINT “Gatilho do teclado acionado" 

860 RETURN 

900 PRINT "Gatilho#! acionado" 


960 RETURN 



136 


MSX Guia do Usuário 


Arquivos em Disco 

Um acionador de disco pode ser utilizado para mu::; ~ -■ • : do que simplesmente armazena- 
mento e recuperação de informação de programas: vocé rr-ce escrever e ler arquivos que con- 
tenham informações. Mesmo que você não tenha um aaoc^dor de disco, esta seção pode ser 
interessante, já que existem muitas vantagens na utilizara:: ir irquivos. Pode ser que, sabendo 
como funciona um acionador de disco, você se decida pela ac,_s.ção de um. 


ABRINDO E FECHANDO ARQUIVOS 

Já que o MSX-BASIC trata um arquivo como se este fosse um dispositivo, a discussão no 
Capítulo 11a respeito dos dispositivos se aplica aos arquivos. Assim, para iniciar uma operação 
com um arquivo deve-se dar o comando OPEN. 0 nome do dispositivo no comando OPEN é o 
nome do arquivo, com uma designação do acionador de disco i opcional) antes do nome. (Se você 
não estiver familiarizado com designação de acionadores e nome de arquivos, veja o Capítulo 18.) 
O exemplo de um comando OPEN para um arquivo é: 

30 OPEN "PR0G1.DAT" FOR INPUTAS#2 

Com o MSX-BASIC é possível ter 15 dispositivos abertos simultaneamente, sendo necessário 
utilizar a pseudovariável MAXFILES=. Sua estrutura é: 

MAXFI LES=n 

Desta maneira o MSX-BASIC é informado que deve reservar espaço de memória para cuidar 
de n dispositivos (o valor-padrão é 1). Observe que a utilização do MAXF1LES= limpa a 
memória de todas as variáveis, colocando todos os valores em 0. Portanto, MAXFILES= deve 
ser utilizado apenas no início do seu programa. 

Ao utilizar o comando OPEN com arquivos, o argumento FOR pode assumir quatro 
valores. Estes valores são muito importantes, uma vez que a utilização do valor errado poderá 
apagar acidentalmente um arquivo. A Tabela 13.2 resume as escolhas. Note que se você abrir um 
arquivo com FOR OUTPUT e este arquivo já existir no disco, ele será apagado! 

O comando CLOSE fecha um arquivo e libera o número do dispositivo. Sua estrutura é: 

CLOSE dev1,dev2... 

Não será necessário que você especifique o número do dispositivo; quando é dado o comando 
CLOSE sem argumento, todos os dispositivos serão fechados. Você deve ter certeza de que ao 
final do programa todos os arquivos estarão fechados, já que o MSX-BASIC às vezes não escreve 
a última informação no arquivo antes que este seja fechado. O comando END também fecha 
todos os arquivos abertos (de modo que terminar um programa com END é equivalente a dar 
o comando CLOSE). 


Outras interfaces 


137 


Tabela 13.2 Escolhas para o argumento FOR no comando OPEN. 


Escolha Significado 


INPUT 
OUTPUT 
APPEND 
Não fornecido 


Ler o arquivo. 

Escrever no arquivo; apaga o arquivo se já existir. 

Escreve no fim do arquivo; não apaga um arquivo existente. 

Acesso aleatório; pode ler e escrever registros de comprimento fixo. 


LENDO ARQUIVOS SEQÜENCJAIS 

Para que seja possível ler a informação de um arquivo sequencial, é necessário que ele tenha 
sido aberto com o argumento FOR INPUT. Para ler um arquivo, deve ser utilizado o comando 
INPUT ou LENE INPUT. Utilize estes comandos com #n, após a palavra 'INPUT, como em: 

INPUT #2, GL$ 

A função INPUT $ também pode ser utilizada; neste caso, o número do arquivo vem após o número 
do string a ser lido. Por exemplo: 

GL$= INPUT$<5,2> 

lê cinco caracteres do dispositivo 2. 

Estes comandos operam da mesma forma que aqueles que você aprendeu no Capítulo 10, 
com a diferença de não imprimirem nada na tela. Por exemplo, assuma que a primeira linha no 
arquivo de dados FIRSTFIL.DAT é: 

12,17, Jose Silva 

e a primeira linha no arquivo de dados SCNDFIL.DATÀ é: 

1 9,2, Robson dos Santos 

Insira o seguinte programa: 

10 REM Exemplo de ler um arquivo 
20 MAXFILES= 2 

30 OPEN "FIRSTFIL.DAT" FOR INPUT AS #1 
40 OPEN "SCNDFIL.DAT" FOR INPUT AS #2 
50 PRINT "A primeira linha do primeiro arquivo e:" 

60 LINE INPUT #1,A$ 

70 PRINT A$ 

80 PRINT “O primeiro numero no segundo arquivo e:"; 

90 INPUT #2, B 
100 PRINT B 
110 CLOSE 


13 8 


MSX Guia do Usuário 


0 programa imprime : 

A primeira linha do primeiro arquivo e: 

12,17,Jose Silva 

O primeiro numero do segundo arquivo e: 1 9 

Se você tentar ler, além do fim do arquivo, o MSX-BASIC dará uma mensagem de erro “Input 
past end”. Para evitar que isto aconteça, utilize a função EOF. Esta função será -1 (verdadeiro) 
caso você esteja no fim do arquivo ou 0 quando não estiver (EOF significa - fim de arquivo - na 
linguagem de computação). Sua estrutura é; 

EOF(n) 

Neste caso n representa o número do dispositivo que está sendo verificado. O programa abaixo 
lê um programa de texto e o imprime na tela. 

10 REM Imprima um arquivo de texto 
20 OPEN "SAMPLE.TXT" FOR INPUT AS #1 
30 IF EOF(1 ) THEN GOTO 70 
40 LINE INPUT #1,V$ 

50 PRINT V$ 

60 GOTO 30 

70 REM Nao ha mais linhas 
80 END 


ESCREVENDO EM ARQUIVOS SEQÜENCIAIS 

Para escrever informações em um arquivo, este deverá ser aberto com FOR OUTPUT ou 
FOR APPEND. Como já foi dito, com a utilização de FOR OUTPUT qualquer arquivo com o 
mesmo nome será apagado antes de ser aberto. O argumento FOR APPEND abre o arquivo para 
leitura, adicionando informação apenas no fim do arquivo sem alterar a informação já existente. 
Utilize os comandos PRINT do Capítulo 1 1 : 

10 REM Exemplo de escrever um arquivo 
20 MAXFILES= 2 

30 OPEN "OUT1.FI L" FOR OUTPUT AS #1 
40 OPEN "O UT2.FI L" FOR OUTPUT AS #2 
50 PRINT #1, "Testando, a parte 1" 

60 PRINT #2, 'Testando, a parte 1" 

70 CLOSE 

80 REM Observe as próximas duas linhas 
90 OPEN "OUT1.FIL" FOR OUTPUT AS #1 
100 OPEN "OUT2.FIL" FOR APPEND AS #2 
tIO PRINT #1, 'Testando, a parte 2" 

120 PRINT #2, 'Testando, a parte 2" 

130 CLOSE 


Outras interfaces 


139 


Após o processamento deste programa, OUTl .FIL conterá apenas: 

Testando, a parte 2 

porque na linha 90 foi utilizado FOR OUTPUT, mas OUT2.FIL conterá: 

Testando, a parte 1 
Testando, a parte 2 

já que ele foi aberto com FOR APPEND na lmh^ 100. 

Para descobrir quantos caracteres foram escritos ou lidos de um arquivo, utiliza-se a função 
LOF. Sua estrutura é: 

LOF(n), 

É útil quando se deseja saber o espaço disponível do arquivo. 

Antes de abrir um arquivo para gravação, poderá ser necessário saber se o disco tem espaço 
suficiente para armazenai os dados, A função DSKF informa quantos espaços estão disponíveis em 
seu disco (o manual do disco informa o número de kbytes possíveis em cada espaço). A estrutura 
da função DSKF é: 

DSKF(numdriv) 

O valor de “numdriv” é 0 para o disco em uso, 1 para “A: ”, ou 2 para “B: Por exemplo, poderá 

haver interesse em incluir as seguintes linhas em um programa: 

«■* 

480 IF DSKF(O) < 3 THEN GOTO 2000 
490 OPEN "DATA.OUT" FOR OUTPUT AS #3 

■v » 

2000 REM Aqui caso o disco esteja completamente cheio 


ARQUIVOS DE ACESSO ALEATÓRIO 

Um arquivo de acesso aleatório é aquele que pode ser lido e escrito onde se desejar. Pode 
parecer bem melhor do que um arquivo seqüencial, mas existem muitas limitações que dificultam 
a utilização dos arquivos de acesso aleatório. A principal dificuldade é que devem ser utilizados 
registros de comprimento fixo (os registros foram descritos no Capítulo 2 na discussão sobre 
sistemas de banco de dados). 

Em resumo, para utilizar este tipo de arquivo, você terá de decidir, antes de utilizá-lo, como 
será cada registro. Cada registro é formado por campos, como os indicados na Figura 13.2. Não 
é apenas o tamanho do registro que é estabelecido, cada campo também tem o seu comprimento 
determinado. Haverá um desperdício muito grande de espaço no disco quando os registros 


140 


MSX Guia do Usuário 


contiverem sénes , uma vez que o comprimento do campo deve ter o xomprimento de acordo 
com a maior série possível. Por exemplo, é possível estabelecer o campo para o nome da cidade 
com 20 caracteres, apesar de sabermos que a maioria das cidades tem nomes com menos de 
10 caracteres. 

Quando acessamos dados do arquivo, o MSX-BASIC lê um registro completo por vez e 
armazena a informação em um “armazém de apoio” (buffer), formado por variáveis alfanuméricas. 
Para acrescentar ou alterar dados, são utilizadas funções especiais para armazenar os dados no 
buffer que podem alterar ou acrescentar um registro inteiro por vez no arquivo. 

Para abrir um arquivo de acesso aleatório, damos o comando OPEN sem o argumento FOR, 
mas com o argumento LEN- no fim. Sua estrutura é: 

OPEN nomearq AS#n LEN=comreg 

O argumento comreg é o comprimento, em caracteres, de cada registro e deve estar entre 1 e 
256. Todo campo é armazenado como uma série , de modo que a soma do comprimento dos 
campos é igual ao comprimento do registro. Se estivermos armazenando dados numéricos, estes 
podem ser convertidos em séries para diminuir o espaço utilizado no arquivo. Os comprimentos 
dos tipos numéricos são: 

* Os inteiros ocupam dois caracteres 

Números reais de simples precisão ocupam quatro caracteres. 

* Números reais de dupla precisão ocupam oito caracteres. 


Campo Campo Campo 

1 2 3 



Figura 13.2 Registros e campos em um arquivo de acesso aleatório. 


Outras interfaces 


141 


Apôs o comando OPEN, deverá ser dado o comando FIELD para informar ao MSX-BASIC a 
formaçao dos campos. Sua estrutura é: 

FIELD#n,comp1 AS var1$,comp2 AS var2$, ... 

Onde n representa o número do dispositivo, compl o número de caracteres no primeiro campo 
e varl$ o nome da variável do buffer que vai armazenar o primeiro campo. Deverá existir tantos 
“comp As varS” quantos forem os campos de registro, e os comprimentos devem estar de acordo 
com o comprimento total do registro especificado no comando OPEN. 

Nos exemplos desta seção, os registros terão três campos: um para o sobrenome (compri- 
mento 25), um para o nome (comprimento 15), e um para os pontos (números reais de simples 
precisão). Os comandos OPEN e FIELD são: 

10 REM Acesso aleatorio 

20 OPEN "TEST.DAT" AS #1 LEN=44 

30 FIELD #1, 25 AS LN$,1 5 AS FN$,4 AS SC$ 

Para ler um registro utilizamos o comando GET, Sua estrutura é: 

GET #n,numeroreg 

O “numeroreg” é o número do registro desejado. Assim o registro é lido no buffer. Por exemplo, 
para ler o quarto registro, deve ser dado o comando: 

240 GET #1,4 

Você pode utilizar uma variável para “numeroreg”, como em; 

180 H7 = H8 + 5 
190 GET #1,H7 

As variáveis série do buffer poderão ser utilizadas em seu programa MSX-BASIC, mas nunca no 
lado esquerdo de um comando LET (os resultados seriam desastrosos). Já que os. números slo 
armazenados de uma forma compacta no arquivo, deverão ser utilizadas funções de conversão 
para que possam ser transformadas em números. 

As funções que você utiliza para converter um dado (que foi lido com um comando GET) 
para as variáveis do MSX-BASIC são CVI, CVS e CVD para inteiros, variáveis de simples precisão 
e variáveis de dupla precisão, respectivamente. As estruturas são: 

CV!(buffervar$) 

CVS(buffervar$) 

CVD(buffervar$) 

Por exemplo, para imprimir o conteúdo do buffer no exemplo dado, poderia utilizar-se o 
comando: 


142 


MSX Guia do Usuário 


300 GET #1, RN 

310 PRINT LN$; CVS(SC$) 

A função CVS transforma a série de dois caracteres em um número de precisão simples. As funções 
CVI, CVS e CVD podem ser utilizadas também para cálculos: 

720 TS = CVS(SC$)*5.3 

Quando você escreve em um registro tudo aquilo que anteriormente estava armazenado nele é 
apagado. A criação de novos registros e a atualização de velhos registros possuem o mesmo efeito. 
Você pode utilizar o comando PUT para gravar um registro em um arquivo randômico. Sua 
estrutura é: 


PUT #n f numreg 

É o contrário do comando GET; lê o conteúdo do buffer e grava-o no disco. 

Q comando LET não pode ser utilizado para estabelecer valores às variáveis do buffer. Em 
vez disto, para colocar as séries no buffer, utilize os comandos LSET e RSET; sua utilização é 
idêntica ao comando LET. O comando LSET coloca uma série na variável do buffer com espaços 
em branco à esquerda, ao passo que o comando RSET coloca a série com espaços em branco à 
direita; quase sempre utilizamos o LSET, 

Existe a possibilidade de converter números em séries para o buffer, Para isto utilize as 
funções MKI$, MFCSS e MKDS que são análogas às funções CVI, CVS e CVD. As suas estru- 
turas são: 


MKIS(inteiro) 

MKS$(real precisão simples) 

MKD$(reaI precisão dupla) 

Por exemplo: 

100 LINE INPUT "Novo sobrenome:"; KA$ 

110 LINE INPUT "Novo nome:"; KB$ 

120 LINE INPUT "Pontos novos" ; KC$ 

130 SO!= VAL(KC$) 

140 LSET LN$ = KAS 
150 LSET FNS = KBS 
160 LSET SCS = MKSS(S0!) 

180 PUT #1, RN 

Em caso de esquecimento do número do último registro lido ou escrito, utilize a função LOC. 
Sua estrutura é: 

LOC(n) 

Esta função raramente é utilizada, já que a maioria dos programas mantém um controle dos 
registros dos comandos PUT e GET, em uma variável. 


Outras interfaces 


143 


Outras E/S 

Apesar de os joysticks e arquivos em disco serem os dispositivos de entrada e saída mais 
comuns do MSX-BASIC, existem outros disponíveis. Por exemplo, com os comandos MOTOR 
ON e MOTOR OFF é possível ligar e desligar o motor de seu gravador cassete. Esta possibilidade 
pode parecer inútil à primeira vista, mas você pode usar outros periféricos e ligá-los na saída do 
cassete, fazendo o seu controle com os comandos do MSX-BASIC. 

Alguns fabricantes de periféricos vendem “mesas digitais”. Você aponta um local da mesa 
com um lápis especial e o MSX-BASIC lê esta posição. Este dispositivo é ligado aos conectores do 
joystick do seu computador MSX. 

A função PAD é utilizada para ler os dados da “mesa”. Sua estrutura é: 

PAD(n) 

0 n, neste caso, tem um significado bem diferente do que para as funções STÍCK e STRIG, Na 
Tabela 13.3 estão resumidos os valores de n. 

Tabela 13,3 Resumo dos argumentos PAD. 

Número Significado 

0 Leia pad da porta 1 ; -1 significa tocado 

1 Coordenada X já lida para porta 1 

2 Coordenada Y já lida para porta 1 

3 Situação do botão para porta 1 ; -1 significa tocado 

4 Leia pad da porta 2; -1 significa tocado 

5 Coordenada X já lida para porta 2 

6 Coordenada Y já lida para porta 2 

7 Situação do botão para porta 2; -1 significa tocado 

Antes de utilizar PAD(l) ou PAD(2), você deve executar um comando com PAD(O), que 
verifica se o lápis especial encostou na “mesa”; caso tenha encostado, PAD(O) será -1 (verdadeiro). 
Após a confirmação de PAD(O), PAD(l) contém o valor da coordenada x e PAD(2) contém o 
valor da coordenada y. PAD(3) verifica a situação do botão no pad; será -1 (verdadeiro) caso o 
botão esteja pressionado e 0 (falso) em caso contrário. Por exemplo: 

130 IF (NOT PAD<0)) THEN GOTO 130 
140 PSET<PAD(1kPAD(2)) 

Com o seu computador MSX é possível utilizar também os controladores tipo “paddle”. São 
relíquias dos primeiros tempos dos jogos de vídeo domésticos, e muitas pessoas ainda os têm. São 
encaixados no conector do joystick e podem ser lidos com a função PDL. Sua estrutura é: 

PDL(n) 

Da mesma forma que com STICK, n representa o número do conector do joystick. A função terá 
um valor entre 0 e 255. A função STRIG pode ser utilizada para ler o botão do “paddle”. 



CAPÍTULO 

14 


programando em linguagem assembly 



basic ~ (dra ~ — 

pode ser “compreendida” pela UCP m™ va kglW6era do Z80, que 

compreende a Iguagem Jmbly do £?• 7 * ®". a d ° c “”P“<ador MSX é um Z80, ela 

a linguagem asseS- nS^T S e nfo^i' nuT^S* 1 ™°™ " a ° * preocu P a “> fender 
computadores. ™ Utilldide p “ a a mai ™ dos proprietários de 

que jzzzz ss '“Sr a r pec,iva de operM com “~ 

a aproximadamente 100 a 300 vezes maü rápL^“^"f o e MsrBSrÉ d0rMS Y COrieSPOnde 
gramas em linguagem assemhlv fn^iH u c ^ q ° MiX " tíASIC )- E possível escrever pro- 

o MSX-B ABIC TS 7“ T“ MSX ' BASÍC • processá-los junto com 
tarefas simples com o MSX-BAS1C. complexas com a linguagem assembly do Z80 e 

p.o, Porru e z°.,:°;rs 

acessíveis com os comandos e funções do MSY raWw d R f M q na0 Sao normal ™en te 
feito com a ptogtamação em ^gem S , ? tUd ° ° q “ e p0de « 

linguagem pennite que você tealifTLfas com o MSX BASIC nom^' °, ™ bIei, ' e desta 
programadores de linguagem assembly. BASIC normalme nte reservadas aos 


Acesso à RAM 

pot ZZ IZIZZ XI T“ para ■» p ™ 

comando algum MSX-BASIC aue nrwíp « 1 0rneci< ^ os em MSX-BASIC, não há 


Programando em linguagem Assembly 


145 


A estrutura da função PEEK é: 

PEEK(end) 

0 argumento “end” representa o endereço ou posição do byte da RAM que desejamos verificar; 
deve variar de 0 até 65535. Um endereço indica um número de bytes do começo da RAM. Com 
o comando PEEK é possível verificar qualquer byte da RAM, seja ele parte do programa MSX- 
BAIC, do interpretador BASIC, ou parte da RAM que contém os valores determinados pelo 
MSX-BASIC para seu próprio uso. 

Observe que na verdade os endereços de 0 até 32767 estão em ROM e não em RAM. Isto 
se deve ao modo com que o seu computador MSX utiliza dados e programas. Entretanto, estes 
endereços podem ser lidos com a função PEEK. 

Por exemplo, enquanto você se encontra no modo 2, pode ser que queira encontrar as 
coordenadas x e y do cursor gráfico. Como já sabemos, não existe comando ou função do MSX- 
BASIC que faça isto. Entretanto, estes valores são mantidos em RAM para serem utilizados pelo 
MSX-BASIC nos endereços &HFCB3 e &HFCB5 (os programadores de linguagem assembly 
normalmente fornecem os endereços em notação hexadecimal). Assim, os valores poderiam ser 
encontrados com os comandos: 

GX = PEEK(&HFCB3) 

GY = PEEK(&HFCB5) 

Não é possível causar danos à memória com a utilização da memória PEEK. 

Caso tenha mais coragem, poderá alterar qualquer parte da RAM com o comando POKE. 
Tenha, porém, muito cuidado, porque a alteração de áreas desconhecidas da RAM poderá ter 
resultados inesperados, como a perda de um programa MSX-BASIC da memória. Um uso inadver- 
tido do comando POKE poderá parar seu computador até que seja desligado $ novamente ligado. 
A estrutura do comando POKE é: 

POKE end,valor 


0 “end” é o mesmo da função PEEK; ‘Valor” é um número entre 0 e 255 para colocar no local. 
Observe que a utilização do comando POKE em qualquer endereço inferior a 32768 não tem 
utilidade, já que esta área está em ROM (que é impenetrável ao comando POKE). 

Não existem muitas outras utilizações para o comando POKE, a não ser carregar rotinas 
em linguagem assembly na RAM. Porém, para ver como opera o comando POKE, altere a largura 
no modo 0 sem limpar a tela. O endereço &HF3B0 contém o comprimento da linha; para alíerá-la 
para 34, dê o comando: 


POKE &HF3B0,34 

Isto altera a largura da tela para 34 caracteres. 


146 


MSX Guia do Usuário 


0 Apêndice E tem uma listagem dos locais da RAM que poderão ter interesse em serem 
utilizados por você para a função PEEK e o comando POKE. Observe que muitos destes locais 
são apenas de leitura; a alteração do valor deste local com o comando POKE poderá ou não alterar 
o modo de agir do MSX-BASIC. 


Processando Programas em Linguagem Assembly 

Caso você saiba como programar na linguagem assembly do Z80 (repetindo, isto apenas 
tem interesse ou utilidade para cerca de 5% dos proprietários de computadores MSX), você poderá 
incluir programas em linguagem assembly nos seus programas MSX-BASIC. Para tanto, adote o 
seguinte procedimento: 

• Carregue o programa na memória ou em variáveis MSX-BASIC. 

Informe ao MSX-BASIC aonde está o programa. 

* Informe ao MSX-BASIC para processar o programa da RAM. 

Enquanto estes passos são bem diretos, é necessário, primeiramente decidir como armazenar 
o programa na memória. 0 método mais usual é armazenar as etapas em uma matriz, que em 
geral é preenchida com números armazenados em declarações DATA (veja no Capítulo ló a 
discussão dos comandos DATA e READ). Por exemplo: 

200 DIM PG%( 1000} 

210 FOR I = 0 TO 1 000 STEP 2 
220 READ A, B 
230 PG%(I) = 256*A+B 
240 NEXTI 
1000 DATA 12,210,48 


Podemos ainda utilizar os comandos BLOAD e BSAVE para armazenar e recuperar dados da 
memória, sao também discutidos no Capitulo 16. Independen temente de como é carregado o 
programa, a última instrução deve ser um RET. 

Depois que o programa estiver na memória, deve-se indicar onde ele começa, u tilizan do 
o comando DEF USR. Sua estrutura é: 

DEF USRdigito= end 

O argumento “dígito” vai de 0 até 9. É possível definir até 10 programas na memória. Se o dígito 
não é declarado, o MSX-BASIC presume que você esteja se referindo ao USR0. O argumento 
end é o endereço do início do programa. Ao utilizarmos BLOAD, u end” é o começo do código. 

A utilização do comando DEF USR com uma matriz é mais complexa. É necessário utilizar 
a função VARPTR para determinar o endereço do início da matriz. A estrutura da função 
VARPTR é: 


VARPTR(variavel) 


Programando em linguagem Assembly 14 7 


Desta maneira é encontrado o endereço da variável Para que isto seja utilizado com o exemplo 
antenor, deve ser dado o comando: exemplo 

250 DEF US$0= VARPTR(PG%(0)) 

USR. P S^ertmLa 0 é:™ Ci0nament0 * ” ^ « <*"«*> 

varl = USRdígito(var2) 

Da mesma fornia que no comando DEF USR, o “dígito” é assumido como 0 quando não é 

P d í 0 3 9 : A variável “ varl ” é 0 “«ultodo que retoma do programa de 

linguagem assembly (se houver), e a variável ‘Var2” é a variável levada ao programa Estas 

devem sempre estar presentes, podendo ser variáveis fictícias. (Significa que podem 
ter qualquer valor que se deseje.) Seu programa em linguagem assembly poderá verificar o 
registro A para o ripo de vanável, caso o argumento “varl” seja passado para a função USR Se 

r “ r V3náVe ** <° A Seiá 3) ’ ° ^ Str0 DE ^ P™ o ponteiro^ 

de tres bytes (compnmento e endereço inicial de dados). Caso você utilize uma variável numérica 

registro HL aponta para o numero atual. Para recolocar um valor à “var2”, monte os registros 
como foi descrito ante ri orm ente. 

o comido 15 ' 0005531 0S eXempl ° S 41116110168 de rotinâS em linguagem assembly, seria utilizado 
360 DM = US$0(DM} 

Se o seu programa em linguagem assembly for armazenado em uma variável, chame o programa 
assim que tiver determinado o endereço da variável, de maneira que o MSX-BASIC não altere 
o endereço caso venha a embaralhar a memória. 

O Apêndice E lista alguns ponteiros que existem na ROM do MSX-BASIC, que podem ser 
c amados com a função USR. Estes locais não precisam de argumento. Por exemplo, a única 
anena de repor rapidamente todos os registradores sonoros com seus valores-padrões no MSX- 

c é através do comando BEEP. Caso você queira repor todos os registros sem este comando 
utilize os comandos abaixo: 

DEF USR 3 '8íH0090 
DM =USR(DMJ 


Porta de Entrada e Saída 

rMD Se qulsern ' os execu!ar entradas e saidas diretamente no Z80, poderemos utilizar a functo 
INP ou o comando OÜT do MSX-BASIC, Suar estruturas são: Ç 


INP(port) 

OUT port,dado 


148 


USX Guia do Usuário 


Onde, “port” é o endereço da porta, e “dado” deve estar entre 0 e 255. 


O comando WAIT espera que os dados de uma determinada porta atendam a certos requi- 
sitos (dificilmente é utilizado). Sua estrutura é: 


WAIT port.andexp, xorexp 


O MSX-BASIC vai ler os dados em “port”; quando o MSX-BÀSIC encontra os dados, compara-os 
com xorexp usando uma instrução XOR, em seguida compara o resultado com “andexp” 
usando uma instrução AND. Se o resultado é 0, o MSX-BASIC continua a esperai. O “xorexp” é 
opcional. 


CAPÍTULO 

15 


AUXÍLIOS À PROGRAMAÇÃO 



Este capítulo fornece diversos comandos e funções que vão ajudá-lo a escrever os proeramas 
acelerando a locaüzaçao de erros e permitindo uma utilização eficiente do MSX-BASIC. 


Carregando o Programa 


as ’ OCêÍá aprendeu corao utmzíI “ “das de controle do cursor e 

IN f 6 DEI r- ,“><*“ cmc ° °<«ra teclas que poderio ter utilidade na programação- 

elas estão relacionadas na Tabela 15 . 1 . ^ ^ ‘ 


Tabela 15.1 Teclas adicionais para edição. 


Tecla 


Função 


CTRL+F 

CTRL+B 

CTRL+N 

CTRL+E 

CTRL+U 


Deslocar o cursor para o início da próxima palavra. 
Deslocar o cursor para o imcio da palavra anterior. 
Deslocar o cursor até o fim da linha. 

Elimine até o fim da linha. 

Elimine toda linha. 


RAQTf^f dlgÍta?a0 / 0 , nil ^ erO daS lÍIlhaS poderá tomar ' se cansativa, e para evitar isto o MSX- 
B ASI C fornece a declaraçao AUTO. Com esta declaração o MSX-BASIC é instruído para iniciar 
cada linha com um novo número. A estrutura da declaração AUTO é: 


AUTO início.incremento 


149 


150 


MSX Guia do Usuário 


mxZsmZZ ‘ “ taCremem °” S3 ° O argumento -W’ rnforma ao 

a n _f - . qU ® lm ^ a ^i 31 a numeração, enquanto “incremento” indica os intervalos entre 
a numeraçao das linhas. 0 padrão dos dois argumentos é 10. 

Pa J a ^ da numeração automática de linhas, acione CTRL+C ou CTRL+STOP Casn iá 
exista este numero de linha visualizado na tela o MqY Rasif J 

Para arm^nar * u„i,* • * t na le,a ’ 0 MSX-BASIC coloca um asterisco após o número 

digitar a nova lmha com as instruções desejadas. existente, basta 


Manipulando Erros 


_ ° MSX ^ ASIC oferece diversas maneiras de tratar seus erros de programação Em certo, 
$, voce pode ter um interesse proposital na geração de erros para verificar o que está acon 
tecendo no programa. Até o presente, ao ocorrer uma mensagem de erro o proptj MOT B ^Tc 

r P “ P p rdopr“ pode “ do * nso 

nunca var“°fru™ ^ ^ *“ ™ «« “ ~ *- ° -Mo 
ON ERROR GOTO linha 

° n<im f r ° da , 1111113 em que “ ™ cia a rottaa de manipulação de erros. Uma vez 
eliminar este computo “ ° MSX ' BASIC lr até a especificada. Para 


ON ERROR GOTO 0 

ERR e A É^ ERR m c^él afS ° * err0 /° derí dete ™ aI ° q»e houve de errado com as variáveis 
ocorreu T" d ° 6110 eer3d0 ’ 6 ERL COntém 0 nte >“° da » em que 

deste capítulo. ' m ° 6 3S!0Ciad ° númer0 ; estes es «° relacionados no L 

A rotina de manipulação de erro deve terminar com o comando RESUME- ooera da mesma 

orma que o comando RETURN. A estrutura do comando RESUME é: 

RESUME NEXT 
RESUME linha 
RESUMEO 

Com RESUME NEXT o programa continua a ser executado na linha que segue àquela em oue 
ocorreu o erro (assim o comando ON FRRnt> rnm ■ H ® queia em que 

GOSURt Rfçitmf * OTO opera da mesma forma que o comando 

u-uòub). RESUME com o argumento “linha” instrui n iucy batip , , u 

RESUME 0 instrui o MSX Rastp n , TQ M$X-BASIC para que va até aquela linha. 

n .r, co . o 1 1SX-BASIC paia que processe novamente a linha que causou o erro- isto 

pode ser pengoso, a nao ser que voc* tenha certeza de que fez algo para coagir o eTo 


Auxílios à programação 151 


Por exemplo, se seu “Syntax error” favorito é o erro número 2, processe o seguinte 
programa: 

10 REM Procurando erros 
20 ON ERROR GOTO 100 
30 PRINT "Quase achando um erro" 

40 SCREEM 2 

50 PRIIMT "Este foi um grande erro" 

60 END 

100 REM Rotina de procura de erro 

110 PRIIMT "Voce achou um erro"; ERR; "na linha numero"; ERL 
120 RESUME NEXT 


Neste caso o usuário é informado de que havia um erro no programa que ainda está sendo proces- 
sado. Frequentemente não é o que se deseja, pois com toda certeza havia algo importante na linha 
que não foi executado. 

Rotinas de erro eficientes podem tratar os erros com criatividade. Por exemplo, pode ser 
que o usuário tenha de digitar o nome do arquivo que deseja abrir. Se este arquivo não existir 
no disco, o MSX-BASIC dará o número de erro 53, “File not found”. Em vez de parar o programa, 
poderá ser dado ao usuário outra oportunidade para fornecer um nome de arquivo, válido. O 
programa baixo imprime um arquivo na tela: 

10 REM Exemplo de RESUME 0 
20 ON ERROR GOTO 100 

30 UNE INPUT "Forneça o nome do arquivo que deseja ver"; A$ 

40 OPEN A$ FOR INPUT AS #1 
50 IF EOF ( 1 ) THEN END 
60 UNE INPUT #1 r B$ 

70 PRINT B$ 

80 GOTO 50 

100 REM Rotina de manipulacao de erro 

110 LINE INPUT "Aquele arquivo nao foi encontrado; tente outro nome: C$ 

1 20 A$ = C$ 

130 RESUME 0 


Quando o usuário digita o nome de um arquivo que não existe no disco, a linha 1 10 pede outro 
nome, e fixa AS para este nome. Quando a linha 40 é executada novamente, A$ terá o 
novo nome, 

O exemplo anterior apresenta um defeito: presume-se que o único erro será “file not 
found”. Uma rotina de manipulação de erro deve ser mais poderosa, especialmente quando os 
dados de inserção são fornecidos pelo usuário. Uma vez que as rotinas de manipulação de erro 
não podem prever todos os casos, deve ser utilizada uma rotina generalizada que trata todos os 
erros que são conhecidos. Substitua as seguintes linhas nas linhas 100 até 130: 


152 


MSX Guia do Usuário 


100 REM Rotina de manipulacao de erro 
110 |FERR= 53THENGOTO 170 
120 IF ERR = 56 THEN GOTO 200 
130 REM Nao reconheci este erro 

!™ pp!JJÍ M f-BAS-C tem o numero do erro"; ERR; " na linha" ERL 
150 PRIÍMT Saindo para MSX-BASIC" ~ 

160 END 

ISO A$ N - E C$ PUT " AqUele arqUÍV ° na ° f0i enCOn,rado; ,ente “tro "orne: C$ 

190 RESUME 0 

2W A$ N = CS PUT At,lJele n ° me dS arqU '' ,<> n3 ° "* C0rretO; ten ' e ° utr0 nome: " ; 

220 RESUME 0 

f,.„, i: „ 0 H M , SX 'r ASI - C ! ermite que ™ ce gere suas P [Ó P™ mensagens de erro de for™ a acionar a 
çao de localizaçao de eno. O comando ERROR tem a seguinte estrutura: 

ERROR n 

Onde n pode ser qualquer número entre 0 e 255; observe que todos os erros de 72 até 225 
ONmG^r em “ Un " err ° r ” a nã0 - " OS — o^comando 

Como foi visto, o comando END encerra um programa. O comando STOP é exatamente 
como o comando END, exceto que permite ao MSX-BASIC imprimir a mensagem: 

Break in nn 

onde "nn” é o número da linha do comando STOP. O comando STOP ndo precisa de argumentos 
de maneira que sua estrutura t simplesmente: argumentos, 

STOP 


° C0mand0 STO l é utilizado na localização de problemas nos programas. Um programa aue 

f. . C °™ Um comando STOP, pode ser reiniciado digitando a declaração CONT O^roerama 
sera iniciado novamente a partir da linha que segue o STOP. ^ ^ 

Quando houver necessidade de um método mais elaborado para o rastreio de nmhWa. 
podem ser utilizadas as declarações TRON e TROFF. A dedaraçSo TRON liga o rLreio em 
passos, ao passo que TROF o desliga. Enquanto o rastreio em passL esüver ati™ cada Í ttó 

â ‘ — Osnúmer»Xr:l â 

[nnnj 

dflX ^ PI “ e " ,S » P— com" os números 

Ç TROFF sao uteis para seguir elos complexos do tipo FOR- 


153 


Auxílios à programação 


NEXT, bem como programas que têm muitos comandos GOTO e GOSUB. As declarações TRON 
e TROFF nao precisam de argumentos, de modo que suas estruturas são: 

TRON 

TROFF 

Por exemplo, insira o seguinte programa: 

10 REM Exemplo TRON 
20 PRINT "Como vai?" 

30 FOR I = 1 TO 3 
40 PRINT I 
50 NEXT I 

Sem o rastreio da linha, a saída é: 

Como vai? 

1 

2 

3 

Dada a declaração TRON, e a saída será: 

[10] [20] Como vai? 

[30] [40] 1 
[50] [40] 2 
[50] [40] 3 
[50] 

Se aparecer o número de eixo 7 (“Out of memory”), seu programa pode ser muito grande ou 
podem estar sendo solicitadas séries, ou matrizes muito grandes, em excesso (a capacidade de 
memória nao está sendo suficiente para suas exigências). Para verificar a quantidade de memória 
livre em um programa, podemos utilizar a função FHE. Sua estrutura é: 

FRE(numero) 


O argumento numero pode ser qualquer número. O valor da função FRE representa o número 

í tes que s ° bram na memória - Se > em ^ programa extenso, este número é menor do que 
1000, voce pode ter certeza de que vai faltar memória. Pode ser necessário utilizai a seguinte 
rotma nos programas que têm problemas de memória: 


50 ON ERROR GOTO 1000 

400 REM Verificar memória 

410 1F FRE(0) < 2000 THEN ERROR 100 


154 


MSX Guia do Usuário 


520 REM Verificar memória 

530 IF FRE{Q) < 2000 THEN ERROR 100 

1000 REM Tratamento de erros 
1010 IF ERR = 100 GOTO 2000 

2000 PRINT "Existe apenas"; FRE(O); "K sobrando na linha"; ERL 
2010 RESUME NEXT 


impedindo a Parada do Usuário 

Em certas situações deve-se impedir que o usuário possa interromper o programa com 
CTRL+STOP. Por exemplo, um programa abre um arquivo que posteriormente vai receber dados. 
Se o usuário interrompe o programa, o arquivo aberto poderá ser estragado. Para evitar isto, 
utilize os comandos ON STOP GOSUB e STOP ON para controlar a utilização da tecla 
CTRL+STOP. 

O comando ON STOP GOSUB informa ao MSX-BASIC qual será a sub-rotina que ele deve 
executar ao ser pressionada a tecla CTRL+STOP. O comando STOP ON tem a estrutura; 

STOP ON 
STOPOFF 
STOP STOP 

O comando STOP ON informa ao MSX-BASIC para que inicie o bloqueio das operações da tecla 
CTRL+STOP; o comando STOP O FF informa ao MSX-BASIC para que retire o bloqueio. O 
comando STOP STOP temporariamente impede o bloqueio, mas mantém um registro se a tecla 
foi pressionada, de modo que o próximo comando STOP ON vai automaticamente à sub-rotina 
especificada. 

As Principais Mensagens de Erro do MSX-BASIC 

A lista que segue sobre as possíveis mensagens de erro do MSX-BASIC inclui uma pequena 
descrição de cada mensagem. O número do erro pode ser lido na variável ERR. 

Número Mensagem 

1 NEXT vvithout FOR 

Uma variável em uma declaração NEXT não corresponde a nenhuma 
variável de uma declaração FOR, sem correspondente, previamente 
executado. 

2 Syntax error 

Foi encontrada uma linha que contém uma seqüência incorreta de 
caracteres (como um parênteses sem correspondência, um comando 
ou declaração errada ou pontuação incorreta). 


Auxílios à programação 155 


3 RETURN without GO SUB 

Foi encontrada uma declaração RETURN sem que tenha havido 
anteriormente a declaração GOSUB correspondente. 

4 OutofDATA 

Foi executada uma declaração READ quando não há nenhuma 
declaração DATA com os dados disponíveis no programa. 

5 Blegal function call 

Foi colocado para uma função série ou matemática, um parâmetro 
incorreto. Este erro pode ocorrer também como o resultado de um 
subscrito negativo ou muito grande, um argumento negativo ou nulo 
com a função LOG, um argumento negativo para a função SQR, uma 
mantissa negativa com um expoente não-inteiro, a chamada para 
uma função USR sem que tenha sido fornecido o endereço inicial, 
ou um argumento inadequado para um comando ou função. 

6 Overflow 

0 resultado de um cálculo é grande demais para que possa ser repre- 
sentado no formato numérico do MSX-BASIC, 

7 Out of memory 

0 programa é muito grande, tem muitos elos FOR ou GOSUB, ou 
tem muitas variáveis ou expressões complicadas. 

8 Undefmed line number 

E feita referência para uma linha inexistente em uma declaração 
GOTO, GOSUB, IF/THEN/ELSE, ou DELETE. 

9 Subscrípt out of range 

O elemento de uma matriz foi referenciado com um índice que está 
fora dá dimensão da matriz ou com o índice errado. 

10 Redimensíoned array 

Foram dadas duas declarações DIM para a mesma matriz, ou foi 
dada uma declaração DIM para uma matriz após ter sido estabelecida 
para ela a dimensão 10 (padrão). 

1 1 Division by zero 

Em uma expressão é encontrada uma divisão por zero, ou um zero é 
elevado a uma potência negativa. Como resultado para a divisão é 
fornecida a representação infinita com o sinal do numerador, e a 
execução continua normalmente. 

12 Blegal direct 

Uma declaração ilegal em modo direto foi colocada como um 
comando em modo direto. 

13 Type mismateh 

Foi dado um valor numérico ao nome de uma variável série ou 
vice-versa, ou uma função que aguardava um argumento numérico 
recebeu um argumento série ou vice-versa. 


MSX Guia do Usuário 


156 


14 Out of string space 

As variáveis série excederam ao espaço disponível alocado. Utilize 
o comando CLEAR para alocar mais espaço para série ou então 
diminua o tamanho e número de séries. 

1 5 String to long 

Foi feita uma tentativa de criar uma série com mais de 255 
caracteres. 

16 String formula too complex 

Uma expressão série é muito longa ou muito complexa. A expressão 
deve ser dividida em expressões menores. 

17 Cant 'continue 

É feita uma tentativa de continuar um programa que foi interrom- 
pido devido a um erro, e que foi modificado durante a interrupção 
do processamento; ou que não existe. 

1 8 Undefined user function 

Foi solicitada uma função FN antes de ter sido dada a definição 
da função. 

19 Device I/O error 

Houve um erro de E/S em cassete, impressora ou em uma operação 
de vídeo. É um erro fatal, significando que o MSX-BASIC não 
consegue recuperar-se do erro. 

20 Verify error 

O programa atual é diferente daquele armazenado no cassete. 

21 No RESUME 

Não existe a declaração RESUME em uma rotina de erro. 

22 RESUME without error 

Foi encontrada uma declaração RESUME antes do fornecimento 
de uma rotina de erro. 

23 Unprintable error 

Não existe uma mensagem de erro para a condição de erro encon- 
trada. Isto normalmente é causado por um ERROR com um código 
de erro indefinido. 

24 Missing operand 

Uma expressão contém um operador sem operando. 

25 Line buffer overflow 

Foi feita uma tentativa de entrar com uma linha com mais do que 
255 caracteres. 

50 FEELD overflow 

Uma declaração FIELD está tentando alocar um número de bytes 
maior do que foi especificado para o comprimento do registro de 
um arquivo randômico. 


Auxílios à programação 


157 


51 

52 

53 

54 

55 

56 

57 

58 

59 

60-255 


Internai error 

Houve um erro de funcionamento interno do MSX-BASIC. 

Bad file number 

Um comando ou uma declaração fazem referência a um arquivo 
com um número de arquivo que não está aberto ou que está fora 
da faixa dos números de arquivo especificado com o comando 
MAXFILES= . 

File not found 

Uma declaração LOAD, KLLL ou OPEN fizeram referência a um 
arquivo que não existe no disco em questão. 

File already open 

Foi solicitado um comando OPEN para saída seqüencial, para um 
arquivo que já está aberto, ou foi dado o comando KILL para um 
arquivo aberto. 

Input past end 

É dada uma declaração INPUT para um arquivo nulo (vazio), ou é 
executado após a entrada de todos os dados do arquivo. Para evitar 
este erro, utilize a função EOF para detectar o fim do arquivo. 

Bad file name 

É utilizada uma forma ilegal para o nome do arquivo com LOAD, 
SAVE, KILL ou OPEN (por exemplo um nome do arquivo com 
excesso de caracteres). 

Direct statment in file 

Foi encontrada, com o comando LOAD, uma declaração direta em 
um arquivo com formatação ASCII. O comando LOAD terminou. 

Sequential I/O only 

Uma declaração PUT ou GET é utilizada para um arquivo sequencial. 
File not OPEN 

O arquivo especificado em um comando de entrada ou saída de 
arquivo (como em PRINT# e INPUT #) não foi aberto. 

Unprintable error 

Estes códigos não têm mensagens. 


FONTE: MSX Technical Refeience Documeníation 1984. BeUevue, Wash.: Microsoft Corporation, 1984. 


CAPÍTULO 

16 


OUTROS COMANDOS E FUNÇÕES 




Este capítulo explora os comandos e funções do MSX-BASIC não utilizados nos capítulos 
anteriores. Estão organizados por ordem de importância dos tópicos discutidos. 


Dados em seus Programas 

Quando utilizamos matrizes para guardar os dados gerados por um programa, poderá ser 
conveniente armazenar todos os dados que serão colocados em uma matriz em uma parte do 
programa. Os comandos READ e DATA frequentemente são utilizados com o elo FOR-NEXT, 
para armazenar informação em uma matriz. 

O comando DATA contém a informação que será lida pelo comando READ. A estrutura 
do comando DATA é: 

DATA elemento 1, elemento2, ... 

Os elementos poderão ser constantes numéricas ou alfanuméricas. As séries deverão ou estar entre 
aspas ou então não deverão conter vírgulas, pontos de interrogação intemamente, ou dois pontos. 
Os comandos de dados poderão conter um número variado de elementos, dependendo de suas 
referências. 

0 comando READ lê o próximo dado de uma declaração DATA e o armazena na variável 
que foi declarada. Sua estrutura é 

R EAD varl ,var2, ... 

0 argumento “var” pode ser qualquer tipo de variável, e a lista pode ter o comprimento 
necessário. Quando um comando READ é lido pelo MSX-BASIC, este procura o próximo dado 
no comando DATA, lê seu valor e o coloca na variável. Assim, o comando DATA é ignorado até 
o momento da execução de um comando READ. 

158 


Outros comandos e funções 


159 


Para entender melhor como os comandos READ e DATA operam, imagine que se deseja 
armazenar uma matriz de duas dimensões com cinco elementos, denominada BP. O programa 
pode ser como o descrito a seguir: 


30 DIM BP(4 r 1) 

80 FOR J = 0 TO 4 
90 READ BP(J,0) 

100 READ BP(J,1) 

110 NEXTJ 

430 DATA 12,43,7,90,16 
440 DATA 29,3 
450 DATA 67,19,22 


Observe que os comandos DATA têm quantidades variáveis de dados. O MSX-BASIC simplesmente 
procura por um dado nao lido para cada comando READ, de maneira que o comprimento dos 
comandos DATA é irrelevante. 

O programa que segue executa a mesma função do anterior: 


30 D!M BP(4,1) 

80 BP(0,0}= 12 
90 BP(0,1 ) = 43 
100 BP{ 1 ,0) = 7 
110 BP( 1 ,1 ) = 90 
120 BP(2,0) = 16 
130 BP(2,1) = 29 
140 BP(3,0) = 3 
150 BP(3,1) = 67 
160 BP(4,0) = 19 
170 BP(4,1) = 22 


Observe a conveniência em se utilizar dos comandos READ e DATA. 

O comando RESTORE permite ao MSX-BASIC recolocar o ponteiro no próximo dado. A 
estrutura do comando RESTORE é: 

RESTORE linha 

Onde linha é o número da linha em que o MSX-BASIC deve iniciar a leitura de dados. Se linha 
for omitido, o MSX-BASIC inicia a leitura a partir do início do programa. O comando RESTORE 
raramente é utilizado. 


160 


MSX Guiei do Usuário 


Organizando o Disco 

Existem comandos fornecidos pelo MSX-BASIC que ajudam a organizar os arquivos no 
disco. Estes comandos, aqui resumidos, são similares aos comandos do MSX-DOS descritos no 
Capítulo 19, Se você não estiver familiarizado com o conceito de arquivos e discos leia o 
Capítulo 1 8. 

Para formatar um disco dê o comando CALL FORMAT. Você será instruído a colocar o 
disco no seu acionador e pode ser solicitado para fazer algumas escolhas. Uma vez que cada fabri- 
cante tem um método diferente para formatar o disco, leia a descrição do comando CALL 
FORMAT existente no manual que acompanha o seu acionador. 

Para a obtenção de uma lista dos arquivos que existem no disco utilize o comando FILES. 
Sua estrutura é: 

FILES nomearq 

Lembre-se de que o MSX-BASIC lista todos os arquivos existentes no seu disco, se não for utili- 
zado “nomearq”, que poderá ser um determinado arquivo ou um arquivo com caracteres-chave 
(estes são descritos no Capítulo 18). O comando LFILES imprime, e uma impressora, a lista 
fornecida por FILES. 

Um arquivo pode facilmente ter seu nome alterado com o comando NAME. Sua estrutura é: 
NAME nomeant AS nomenovo 

Onde nomeant é o nome atual do arquivo, e “nomenovo” é o que se deseja para o arquivo. 

Conseguir uma cópia de um arquivo em disco também é fácil, A estrutura do comando 
COPY é: 


CQPY arql TO arq2 

Onde “arql” é o nome do arquivo que está sendo copiado e “arq2” é o nome do arquivo copiado. 
Para eliminar um arquivo utilize o comando KILL. Sua estrutura é: 

KILL nomearq 

No “nomearq” podemos utilizar caracteres-chave. Esteja certo de não ter aberto um arquivo que 
esteja sendo cancelado, uma vez que neste caso o MSX-BASIC indica uma condição de erro. 

É possível retomar ao MSX-DOS do MSX-BASIC com o comando CALL SYSTEM quando 
você tiver MSX-DOS em seu disco. Ao fazer isto, o programa existente na memória estará 
perdido, a menos que tenha sido salvo em disco ou em cassete; é o mesmo que desligar o 
computador MSX. 


Outros comandos e funções 161 


Fixar Parâmetros do MSX-BASIC 

Existem dois comandos que fixam alguns parâmetros do MSX-BASIC: SCREEN e WIDTH. 
Já foram vistos alguns argumentos do comando SCREEN, como modo e tamanho do sprite. Os 
outros argumentos fixam parâmetros que nada têm a ver com a tela. 

A estrutura completa do comando SCREEN é: 

SCREEN modo,tamspri te ,cl i ctec,vel f i ta, ti poi m pr 
Os argumentos são: 

A opção “clictec” liga ou desliga o som que se escuta nó aparelho de televisão ou no 
monitor. A situação-padrão (clictec = 1) permite que seja escutado quando pressionam-se 
as teclas: para desligá-las coloque 0 como valor de clictec. 

• A opção “velfita” informa ao MSX-BASIC se deve utilizar 1200 ou 2400 baud para 
leitura ou gravação no gravador cassete; o padrão (velfita = 1) é 1200 baud. Para ler 
e gravar com 2400 baud, coloque “velfita” em 2. 

A opção tipoimp” informa ao MSX-BASIC se a impressora tem condição de imprimir 
todos os caracteres gráficos do MSX (poucas o fazem). O padrão (tipoimp = 1) informa 
que a impressora não imprime gráficos; se a sua impressora conseguir imprimir os gráficos 
MSX, coloque “tipoimp” em 0. 

O comando WIDTH informa ao MSX-BASIC quantos caracteres devem ser impressos em uma 
linha da tela. Este comando não tem muita utilidade, uma vez que com o valor-padrão, o MSX- 
BASIC tenta imprimir a maior quantidade possível de caracteres. Diminuindo este valor significa 
apenas que podem ser impressos menos caracteres. Sua estrutura é : 

WIDTH tamanho 

Onde “tamanho” deve estar entre 1 e 40. 


Teclas de Função 

As teclas de função (F1 até FIO) de seu computador MSX podem ser programadas para 
facilitar suas vidas. Em alguns computadores MSX, as teclas F5 até FIO não estão incluídas no 
teclado. Em seu lugar são utilizadas as teclas F1 até F5, com a tecla SHIFT para a obtenção das 
restantes. A Microsoft programou as teclas de função com comandos MSX-BASIC que podem 
ter utilidade para os programadores, mas você pode reprogramar estas teclas para qualquer função 
desejada. 

Cada tecla poderá ser programada para conter um texto de até 16 caracteres. Para cada 
operação de uma tecla de função, o MSX-BASIC reage como se estes caracteres tivssem sido 
teclados por você. Assim, estas teclas poderão ser utilizadas na resposta aos comandos INPUT 
ou durante a escrita de um programa. 


162 


MSX Guia do Usuário 


0 comando KEY lista as definições atuais das teclas e define novas séries para teclas indi- 
viduais, Sua estrutura é: 

KEY LIST 
KEY numtec.srfms. 

O comando KEY LIST lista as definições das dez teclas, na teía. Em KEY numtec.série, o 
numtec é o número da chave de função (de 1 até 10) e a série é a seqüência de caracteres que 
se deseja colocar na tecla. 

Por exemplo, podemos ter um programa em que entramos com valores em cruzeiros. Caso 
10,00 ’ seja um valor comum, Fl pode assumir esta série'. 

KEY V'$Q,00' r 

O MSX-BASIC permite que seja utilizado qualquer caractere na série ; por exemplo, havendo 
intenção de entrar com “J0.00”, pressione a tecla RETURN. A tecla Fl pode ser alterada para: 

KEY 1, "$0,00"+CH R${ 1 3) 

In dependentemente do comprimento da séne estabelecida - para uma tecla, apenas os sete carac- 
teres iniciais aparecerão na linha de indicação. Lembre-se de que esta linha pode ser desligada no 
final da tela com o comando KEY OFF e ligada novamente com o comando KEY ON. 

O MSX-BASIC pode ser informado para executar uma determinada sub-rotina quando 
uma das teclas de função for operada pelo usuário. Esta condição será conseguida com os coman- 
dos ON KEY GOSUB e KEY n ON. A estrutura do comando ON KEY GOSUB é: 

ON KEY GOSUB Iinha1 r linha2,„. 

Onde “linha” são os números das linhas da sub-rotina que o MSX-BASIC irá executar ao se pres- 
sionar uma tecla. Para permitir qualquer enlace utilize KEY n ON: 

KEYn ON 

Onde néa tecla de função que se quer utilizar. 

Por exemplo, podemos adotar a tecla Fl como uma tecla universal de “auxílio” em um 
programa, cada vez que o usuáno pressionar a tecla Fl , uma mensagem informará sobre o que 
está ocorrendo. Podemos adotai a tecla F2 como uma tecla universal de “saída”. O seu programa 
pode ficar tal como: 


130 ON KEY GOSUB 1000,2000 
140 KEY 1 ON 
150 KEY 2 ON 


990 END 


Outros comandos e funções 


163 


1000 REM Sub-rotlna de auxilio 

1010 CLS: PRlNT "Aqui esta um pouco de ajuda" 

1160 REM Fim da sub-rotina 

1170 RETURN 

2000 REM Sub-rotina de saida 

2010 CLS: PRlNT "Passe muito bem..." 

2020 CLOSE 
2030 END 

2040 REM Nao precisa de RETURN ja que 
2050 REM o programa terminou. 

Tempo de Enlace 

Você já aprendeu como “prender” diversos acontecimentos, como a operação do gatilho 
de um joystick ou da tecla CTKL+STOP. Para que o MSX-BASIC vá até uma sub-rotina após um 
determinado tempo, utilize os comandos ON INTERVAL = GOSUB e INTERVAL ON, Estes 
operam da mesma forma que outros comandos dê enlace. A estrutura do comando ON 
INTERVAL = GOSUB é: 

ON INTERVAL = nGOSUB linha 

Onde n é o número de intervalos de 1/60 do segundo, como na variável TIME, entre chamadas da 
sub-rotina da “linha”. Após o comando ON INTERVAL GOSUB, dê o comando INTERVAL ON 
para ativar o enlace (ele pode ser desligado com INTERVAL OFF). 

Por exemplo, pode existir uma indicação na parte superior da tela informando o tempo 
de jogo que resta a você. Para atualizar esta indicação a cada 10 segundos, poderia ser incluída 
a seguinte rotina em seu jogo; 

300 REM T representa os segundos restantes 
310 T - 100 

320 ON INTERVAL = 600 GOSUB 1500 
330 INTERVAL ON 

1500 REM Sub-rotina para indicar tempo restante 
1500 T = T- 10 
1520 X0= POS(O) 

1530 Y0 = CSRLIN 
1540 LOCATE 0,0 

1550 PRlNT "Tempo restante: ";T; "segundos" 

1560 LOCATE XO, YO 
1570 RETURN 


Já que é possível que o MSX-BASIC esteja imprimindo na tela, no momento da ocorrência deste 
evento, é importante que se retome o cursor para a sua posição original ao terminar a sub-rotina. 


164 


MSX Guia do Usuário 


Mudando Valores de Variáveis 


Ocasionalmente poderá haver necessidade de comutar os valores de duas variáveis. Para 
fazê-lo, você deve utilizar o comando SWAP. Sua estrutura é: 

SWAP var1,var2 

Desta maneira varl se iguala ao valor antigo de var2, e var2 se iguala ao valor anterior de varl. 

Definindo suas Próprias Funções 

O MSX-BASIC fornece uma facilidade que permite a você escrever suas próprias funções 
e utilizá-las em seus programas. Caso seja possível escrever sua função em uma única expressão 

matemática, poderá utilizar o comando DEF FN para criar uma função que se iguala com esta 
expressão. 

A estrutura do comando DEF FN é; 

DEF FNvar(p1,p2,...) = expressão 

Onde o argumento “var” é o nome da função. Os eventuais parâmetros existentes são incluídos 
como pl, p2 etc. Já que o MSX-BASIC apenas lembra os tipos de parâmetros, e não os nomes, 
estes não são importantes. A “expressão” é qualquer expressão MSX-BASIC válida. 

Por exemplo, podemos definir uma função que determina o seno hiperbólico de um número 
(caso você se lembrasse desta equação, seria motivo de orgulho de seu professor de matemática). 
Para sua definição, você poderia utilizar o comando: 

30 DEF FNSH(X) = <EXP(X) - EXP(~X))/2 

O X não tem importância; a única lembrança do MSX-BASIC é a de que FNSH é uma função 
que tem argumento real de dupla precisão. Podemos agora utilizar a função FNSH da mesma 
forma que outras do MSX-BASIC: 

90 G = FNSH{3.1) 

A principal limitação do comando DEF FN é a de que a função deve ser definida como uma única 
função. Para funções simples isto é ótimo, mas normalmente isto impede que sejam definidas 
funções complexas. 


O Comando CALL 

No caso de seu computador MSX possuir programas especiais escritos em ROM, estes pro- 
vavelmente serão acessados com o comando CALL. (Estes programas serão documentados no 
manual que acompanhar o computador.) A estrutura do comando CALL é: 


Ou tros comandos e funções 1 65 


CALL rotiriô(param1,param2,. J 

Onde “rotina” é o nome do programa na ROM; quando os parâmetros forem necessários deverão 
ser especificados no parênteses. Em vez da palavra “CALL” poderá ser utilizado o sinal 

_rotina(param1,param2,.„) 


Por exemplo, o CX5M da Yamaha contém um sintetizador de música que pode ser con- 
trolado pelo programa MUSIC. Para que este programa seja processado a partir do MSX-BASIC 
dê o comando; ’ 

CALL MUSIC 

ou 

MUSIC 


Misturando Programas 

É pouco provável que você irá unir dois programas, uma vez que a numeração da linhas 
possivelmente entrará em choque. 0 comando MERGE tem entretanto esta função Sua 
estrutura é: 


MERGE nomearq 

Desta maneira nomearq é colocado na memória junto com o programa atual 


Limpando a Memória 


Durante a execução de um programa complicado em MSX-BASIC, poderá haver falta de 
memória. 0 MSX-BASIC fornece duas maneiras de manipular a memória disponível: os coman- 
dos CLEAR e ERASE, que raiamente são utilizados. 

O comando CLEAR elimina todas as variáveis da memória e permite que o espaço seja 
utilizado para sénes. Isto, sem dúvida, somente terá utilidade no início do programa, antes da 
existência de variáveis. A estrutura é: 

CLEAR tamsérie 

O vaior-padrão de “tamsérie” (que representa a quantidade de RAM disponível para variáveis 
séne) é 200 bytes. O comando CLEAR também fecha todos os arquivos. 0 comando ERASE 
libera o espaço utilizado por uma matriz e faz o MSX-BASIC comprimir a memória livre. A 
estrutura do comando ERASE é: 

ERASE matriz1,matriz2,... 

Cada “matriz” é o nome da matriz que se quer eliminar da memória. Após a utilização de 
ERASE, a matriz poderá ser novamente dimensionada com o comando DIM. 


166 MSX Guia do Usuário 


Manipulação Avançada de Vídeo 

Quando estiver fa m iliarizado com o processador de vídeo (VDP) TI9918A, você poderá 
utilizar os comandos VDP, VPEEK, VPOKE e BASE para alterar a RAM utilizada pelo integrado. 

A função VDP permite que você olhe e altere os registradores do integrado VDP. Ao 
estabelecer um registro, sua estrutura é: 

VDP(reg) = valor 

Onde “reg” é o número do registrador, que varia de 0 até 7; o ‘Valor” pode ser de 0 até 255. Para 
ler o conteúdo do registrador utilize a função: 

VDP{reg> 

Já que cada bit do registrador é significativo, tenha certeza de seu significado antes de alterá-los. 

A função VPEEK e o comando VPOKE são muito parecidos com PEEK e POKE, exceto 
que operam sobre os 16K de RAM do vídeo. Esta é a única maneira de acessar o RAM do vídeo. 
Esta RAM mantém, além dos valores das retículas e caracteres da tela, a informação dos sprites 
e cores utilizadas. Os endereços dos VRAM vão de 0 até 16383. 

A função BASE permite que sejam alterados os endereços básicos utilizados pelo integrado 
VDP ao colocar texto e gráficos na tela. Somente tem utilidade para programadores experientes 
que queiram armazenar diversas imagens simultaneamente na VRAM. 

Para estabelecer um registro, utilize a estrutura: 

BASE(entrtab> = endvram 

Os valores de entrtab” estão indicados na Tabela 16.1. 0 “endvram” representa o endereço 
da VRAM que você deseja alterar. Para ler o valor atual da tabela, utilize: 

BASE(entrtab) 


Tabela 16.1 Parâmetros para a função BASE. 

Parâmetro Significado 

0 
1 
2 

3 

4 


Base da tabela de nome 

Base da tabela de cor 

Base da tabela de gerador de figuras 

Base da tabela do atributo sprite 

Base da tabela do padrão sprite 


Outros comandos e J unções 


167 


Paia você poder utilizar a função BASE, deverá determinar o modo de tela e seu número, multi- 
plicá-lo por 5, e somar o resultado ao parâmetro da Tabela 16.1. Assim, para utilizai C2 como 
o valor do endereço básico da tabela do atributo sprite para modo 2, utilize o comando: 

C2 = BASE((2“5)+3) 

Armazenando Imagens Binárias 

É possível carregar ou salvar uma cópia do RAM em disco ou cassete, com os comandos 
BLOAD e BSAVE. Além de salvar um programa em linguagem assembly ou uma cópia de parte 
da BRAM, existem poucas utilidades para estes comandos. 

A estrutura do comando BSAVE é: 

BSAVEnomarq,endinic,endfin 

Onde “nomarq” é o nome do arquivo em que se deseja armazenar a imagem binária. O “endenic” 
e “endfin” correspondem aos endereços iniciais e finais da RAM que se deseja salvar. Estes dois 
endereços são armazenados com o arquivo. 

A estrutura do comando BLOAD é: 

BLOADnomarq, r desloc 

Quando é incluído um endereço “desloc”, este é acrescentado ao endereço inicial e final armaze- 
nado no arquivo; desta maneira é possível carregar um bloco de memória para uma região 
diferente da memória que aquela de onde fora retirada para ser salva no cassete (ou disco). 

Caso você deseje salvar uma imagem da VRAM, a opção S deve ser utilizada. As estruturas 
neste caso ficam: 

BSAVEnomarq,endinic,endfin,S 

BLOADnomarq,S f desloc 






PARTÉ 

3 


Aprendendo MSX-DOS 



CAPÍTULO 

17 


DESCRIÇÃO DO MSX-DOS 




Se você tiver um acionador de disco e 64K de RAM, você pode usar o MSX-DOS, que 
nada mais é do que o sistema operacional paia disco de seu computador MSX. 0 MSX-DOS se 
toma necessário quando se deseja processar programas aplicativos externos ao MSX-BASIC, 
sendo desnecessário se a finalidade for a de operar o disco. 

Grande parte dos programas aplicativos que são adquiridos para o computador MSX 
presume que você conheça os comandos do MSX-DOS, de modo que não fornece as instruções 
necessárias para operar o programa. Portanto, você poderá descobrir que algumas das tarefas 
que quiser realizar (como a formatação de um disco novo) não são executadas pelo seu 
programa aplicativo. Poderão ser feitas com MSX-DOS ou, em alguns casos, com os comandos 
de disco do MSX-BASIC. 


O que Faz o MSX-DOS 

Podemos imaginar que um sistema operacional seja similar à cabina de comando de uma 
aeronave. Sem ela, o potencial é grande, mas não poderá voar com o avião. O sistema operacional 
permite que võcê (o piloto) controle o computador informando-o para onde ir e o que fazer. O 
sistema operacional coordena as partes do computador fomecendo-the uma maneira simples de 
controlá-lo. Neste capítulo você vai começar a aprender como o MSX-DOS executa seu papel. 

O MSX-DOS é uma extensão do sistema operacional do seu MSX; permite ao sistema 
operacional do MSX controlar os acionadores de disco. O MSX-DOS, entretanto, faz muito mais 
do que isto; fornece uma maneira de informar ao computador qual é o programa ou comando que 
você está querendo executar, onde este programa ou comando serão encontrados e o que fazer 
com ele. 

A função operacional principal do MSX-DOS é utilitária. Nesta situação o MSX-DOS executa 
comandos, que permitem sua interação direta com o computador. As funções executadas por estes 
comandos sao. nomeaic, arquivos do disco ou copiar arquivos de um disco para outro, entre outros. 

171 


172 


MSX Guia do Usuário 


0 MSX-DOS trata seus próprios comandos como programas aplicativos. Estes programas, 
porém, são mais limitados que a maioria dos programas aplicativos. Não executam tarefas do tipo 
processamento de palavras ou contabilidade; em seu lugar preenchem as funções de manutenção 
do computador. Todo comando tem um nome facilmente lembrado. Por exemplo, para copiar 
as informações de um disco para outro, é utilizado o comando COPY. Todos estes comandos 
são discutidos no Capítulo 19. 

Olhando a Parte Interna do MSX-DOS 

A maioria das pessoas opera com os computadores MSX-DOS sem nada saber sobre o que 
o MSX-DOS está fazendo. Conhecer um pouco a maneira como ele trabalha poderá ajudá-lo na 
utilização mais efetiva de seu sistema operacional. Poderá ajudá-lo, ainda, no estabelecimento dos 
limites sobre o que esperar do MSX-DOS. 

Se fosse possível olhar para dentro do MSX-DOS, o que veríamos seria um conjunto muito 
complicado de instruções de computador. Estas instruções estão descritas em linguagem assembly. 
Felizmente não será necessário conhecê-la para utilizar o MSX-DOS. Nem é preciso saber como 
o MSX-DOS executa seu trabalho. Entretanto, o processo pelo qual o MSX-DOS processa seus 
programas não é difícil de entender, e é útil conhecer algo a seu respeito, especialmente quando 
os comandos são dados diretamente ao MSX-DOS. 


COMO O MSX-DOS PROCESSA OS COMANDOS 

Os processos discutidos nesta seção relacionam-se com a função utilitária do MSX-DOS; 
como estes utilitários operam você vai aprender nos dois próximos capítulos. O MSX-DOS é 
como um programa que está sempre operando. Quando você liga o computador o MSX-DOS é 
passado do disco para a memória RAM e começa a operar (uma descrição completa deste 
procedimento é fornecida no Capítulo 18). Quando o MSX-DOS estiver pronto para receber o 
primeiro comando ou processar um programa, coloca uma mensagem na tela e aguarda suas 
instruções. 

Esta indicação geralmente é “A>”, informando que o interpretador de comandos do 
MSX-DOS está pronto para a próxima instrução. Este interpretador lê seu comando, encontra 
o programa certo, e inicia seu processamento. (No restante desta seção será utilizada a palavra 
“comando”; este processo também se aplica para todos os programas processados pelo 
MSX-DOS.) 

Para processar um comando basta digitar seu nome (e argumentos) pelo teclado. O 
MSX-DOS mostra os caracteres na tela, à medida que são digitados. Em seguida pressione a tecla 
RETURN da mesma fornia que no MSX-BASIC. 

Após informar ao MSX-DOS o nome do comando, o sistema operacional deverá encontrar 
o programa do comando. Deve olhar em dois locais: um comando poderá estar armazenado 
interna ou extemamente. Os comandos internos são parte integrante do MSX-DOS. Significa 
que eles não precisam ser procurados pelo MSX-DOS em um disco, já que foram carregados na 
RAM com o restante do MSX-DOS. Os programas aplicativos são externos. Sempre que estes 
programas são processados, deverão ser lidos do disco pelo MSX-DOS antes que possam ser 


Dacrição do MSX-DOS 


173 


Espere pelo comando 
do usuário 


O comando é interno 
externo ou em lote? 


3 




rj 

1 — ] — c_ 

1 

i Interno 


■ Externo 

Encontre i 
em 1 

□ programa 
IAM 


Encontre o programa 
em disco 




IX 



Carregue o programa 
em RAM 

~ 1 


Informe ao CPU 
onde iniciar 


Ao terminar volte 
ao MSX-DOS 


f Lote 

Execute cada 

linha 


Figuia í 7.1 Como o MSX-DOS processa um programa. 


executados. Por exemplo, caso você tenha um programa de processamento de palavras que não 
esteja em ROM, trata-se de um programa externo. 

Arquivo em lotes é um tipo especial de comando externo formado por um conjunto de 
comandos MSX-DOS (discutidos em detalhe no Capítulo 18). A Figura 17.1 mostra os passos 
seguidos pelo sistema operacional quando você o instrui para processai um comando. 

Como não há diferença na maneira com que você informa ao MSX-DOS para processar 
comandos externos ou internos, não é necessário (de modo geral) que você saiba que tipo de 
comando está pedindo ao MSX-DOS para executar. Por enquanto podemos ignorar as diferenças 

porem mais adiante você verá porque é necessário saber quando um comando é externo ou 
interno. 

Quando processamos um comando externo, deve existir a certeza de que o disco que 
contém o programa do comando está colocado no acionador. Caso não esteja no acionador (ou 
caso tenha erro na digitação do nome de comando), o MSX-DOS emitirá uma mensagem de erro 
Bad comand or file name” (Erro de comando ou no nome do arquivo). 

O Capítulo 18 descreve como utilizar o MSX-DOS, e o Capítulo 19 descreve todos os 
comandos MSX-DOS. 









CAPÍTULO 

18 


UTILIZANDO O MSX-DOS 
APRESENTANDO COMANDOS E ARQUIVOS 


Após a compreensão de alguns conceitos, a maioria das pessoas acha que o MSX-DOS é 
muito fácil de aprender. Este capítulo explicará como: 

• Utilizar os comandos MSX-DOS e processar programas aplicativos; 

• Utilizar arquivos; 

• Escrever arquivos para lotes. 

Além disto, este capítulo apresenta diversos comandos MSX-DOS mostrando, ainda, como 
utilizá-los para a realização de tarefas simples. Não procura apresentar todos os comandos do 
MSX-DOS nem todas as utilizações dos comandos discutidos aqui. Para este tipo de informação, 
veja o Capítulo 19, "‘Os comandos MSX-DOS”, onde são discutidos todos os comandos do 
MSX-DOS, em profundidade, incluindo tanto sua utilização comum como sua utilização não- 
comum. Poderá ser utilizado como referência para dúvidas a respeito de qualquer comando. 

A maioria dos comandos apresentados neste capítulo vem acompanhada de exemplos. 
Experimente os comandos dos exemplos em seu computador MSX. Os mais simples serão 
discutidos primeiro. Já que a maioria dos comandos do MSX-DOS tem nomes relacionados com 
a ação que realizam deve ser fácil lembrar a utilização de cada um deles. Se houver necessidade 
de uma referência posterior a eles, lembre-se de que são explicados em detalhe no Capítulo 19. 


Inicializando o MSX-DOS 

Siga as instruções que acompanham o acionador de disco, para carregar o MSX-DOS. 
Certifique-se de que o disco esteja firmemente colocado em seu lugar (a menos que no seu 
computador MSX ele faça parte integrante do aparelho). Quando seu acionador apresentar uma 
chave liga/desliga, ligue primeiro esta chave e depois o computador MSX 

Assim que o MSX-DOS estiver carregado, será apresentada na tela a indicação com o número 
de versão do MSX-DOS e a declaração de direitos autorais da Microsoft, seguida pela solicitação 
174 


Utilizando o MSX-DOS: apresentando comandos e arquivos 


175 


“Enter new date: “Isto acontece a não ser que seu computador MSX tenha um relógio interno 
ou que seu disco de sistema contenha um arquivo especial denominado arquivo AUTOEXEC.BAT 
que, ao ser carregado o sistema, executa automaticamente uma série de comandos escritos nele. 
Ao final deste capítulo este arquivo é discutido em detalhes. A orientação para colocação da 
data é semelhante a: 

Currentdate is Sun 1-01-1984 
Enter new date: • 

O bloco que aparece à direita da orientação é denominado cursor, como no MSX-BASIC. 
Observe que o cursor está aguardando apôs os dois pontos na segunda linha. 

Digite a data como três números, separados por hífen (-) ou barra (/). Em seguida indica- 
remos formas válidas para 14 de Setembro de 1985. Observe que o mês deve sempre ser colocado 
em primeiro lugar, seguido pelo dia e depois pelo ano. 

9-14-85 

9/14-./85 

09/14/85 

Na eventualidade de cometer um erro durante a digitação, pressione a tecla BACKSPACE para 
retomar aos caracteres errados. Ao terminar pressione a tecla RETURN. 

Qual é a necessidade que o MSX-DOS tem de conhecer a data? Quando ele armazena 
arquivos nó disco, registra o dia e a hora permitindo assim que você saiba quando criou o arquivo. 
Entretanto, o registro da data e do horário não é obrigatório. Se nao quiser colocar a data correta, 
basta pressionar a tecla RETURN para que o MSX-DOS presuma que a data seja Janeiro, dia 
1 de 1984 (ou qualquer que seja a data indicada no vídeo). Após ter dado entrada à data aparece 
na tela o sinal A>. 

A> ■ 

A indicação-padrão, A>, será vista após ter informado ao MSX-DOS a data e a hora. A> é a 
maneira com que o MSX-DOS solicita que você lhe dé um comando. Ao ver o A>, saberá que 
não há outro programa em processamento. 


O que fazer ao ver o Indicador A> 

Uma vez que o sinal A> aparece em seu vídeo, o próximo passo é fornecer um comando 
ao MSX-DOS. Normalmente, para dar um comando ou processar um programa, deve-se digitar 
o nome do comando ou do programa e pressionai a tecla RETURN. (Existem outras informações 
que podem ser digitadas apôs o nome de um comando; estas são descritas mais adiante neste 
capítulo.) Pode ser que o comando DIR seja o primeiro comando que você queira dar: fornece 
uma listagem de todos os arquivos que estão em seu disco. O exemplo abaixo mostra como é 
que isto deve ser feito. (O modo de ilustrar os exemplos, em forma de quadros, será utilizado 
para apresentar os comandos ou procedimentos discutidos no texto.) 


176 


MSX Guia do Usuário 


Ao ver o sinal A>, digite DIR. A entrada que é dada deve ser algo semelhante a: 
A> DIR 

Observe que aquilo que você digita é sublinhado na ilustração. Em todo o capítulo, o 
que você digita será sublinhado de modo que seja facilmente distinguido das mensagens 
geradas pelos MSX-DOS. 

Em seguida pressione a tecla RETURN. O comando DIR percorre e digita uma 
lista de todos os arquivos no acionador A. Você acabou de dar seu primeiro comando 
MSX-DOS. 


Enquanto você digita os comandos, poderá utilizar algumas das teclas especiais que existem 
no teclado, para ajudá-lo. Poderá utilizar a tecla BACKSPACE para correção de erros (como foi 
feito no MSX-BASIC). Para eliminar uma linha inteira, pressione a tecla denominada ESC ou 
ESCAPE. 

Na eventualidade de ocorrer uma mensagem de erro do tipo “Bad command or file name” 
durante a tentativa de processar um comando, não se preocupe. O erro mais comum é a 
digitação errada do nome do programa. 

0 ACIONADOR "ASSUMIDO" E COMANDOS EXTERNOS 

Como você já viu, a indicação do MSX-DOS lhe diz que o sistema operacional está 
aguardando um comando. A indicação diz algo mais. Diz para qual acionador o MSX-DOS 
se dirige automaticamente ao procurar comandos e arquivos. Este acionador é chamado “acio- 
nador assumido”. Significa alguma coisa presumida caso não haja especificação em contrário. 

Como a maioria dos computadores tem apenas um acionador de disco, não precisa se 
preocupar como utilizar o segundo. Mesmo que você tenha apenas um acionador de disco, será 
demonstrado mais adiante como fazer para que o MSX-DOS pense que existem dois. 

Quando o MSX-DOS lhe dá a indicação A>, o acionador assumido é A: . Quando 
indica B> ou O, informando-lhe que. o acionador assumido é B: ou C: (as letras dos discos 
são normalmente seguidas por dois pontos para distingui-las do nome de arquivos). 

Você poderá querer sabei porque as letras A: e B:, Seu computador poderá ter vários 
acionadores de disco ou apenas um. Os discos são nomeados com letras, iniciando com A: re- 
presentando o primeiro disco do computador, B: representando o segundo etc. O manual 
de seu computador deve explicar como os discos são identificados. Caso você tenha um disco 
rígido, ele poderá ser tratado pelo MSX-DOS como se estivesse dividido em discos menores, 
cada um com uma letra própria. 

Não é importante o conhecimento de qual acionador contém o disco de sistema do MSX- 
DOS, quando se digita um comando do tipo DIR. Entretanto, faz diferença quando é dado 
um comando externo, uma vez que o MSX-DOS deve ler o comando externo do disco de sistema 
antes de executá-lo. Normalmente o MSX-DOS olha para o acionador assumido, na tentativa 
de ler um comando. 


Utilizando o MSX-DOS: apresentando comandos e arquivos 


177 


Por exemplo, ao listar o diretório de seu disco de sistema, você deve ter visto um arquivo 
denominado MBASIC.COM. - comando externo que permite que sejam feitos programas em 
um dialeto denominado MBASIC (dificilmente será utilizado já que o MSX-BASIC é muito mais 
poderoso). Para executar um comando externo, basta digitá-lo da mesma forma que se digita 
um comando interno. 


Por exemplo, para dar início ao MBASIC, dê o comando: 

A> MBASIC 

Podemos escutar o zumbido do acionador enquanto lê o programa MBASIC do disco. 
0 MSX-DOS carrega o programa MBASIC e inicia seu processamento.. 

Para sair do programa MBASIC, digite o comando SYSTEM e pressione a tecla 
RETURN. Novamente aparece A>. 


Quando você informa ao MSX-DOS para processar um comando externo, este olha apenas 
para o disco do acionador assumido, a não ser que receba uma informação diferente. Caso os 
comandos que devam ser processados estejam no disco B: , pode haver interesse em alterar o acio 
nador assumido para B: . Esta alteração pode ser feita pela digitação de outra letra seguida por 
dois pontos e depois pressionando a tecla RETURN. 


Por exemplo, para alterar de A: para B: o acionador assumido, dê o comando: 

A> B: 

B> ■ 

A indicação B> mostra que o acionador assumido foi alterado para B: . 


Se você tiver apenas um acionador, o MSX-DOS chama-o de A: . Mesmo que você se 
retira a B: isto não confundirá o MSX-DOS. Ele sabe que você quer pensar nele como se fosse 
B. . Quando você se refere a uma letra de disco diferente daquela que o MSX-DOS acredita estar 
no acionador, o MSX-DOS pede que um novo disco seja colocado no acionador. Por exemplo, 

caso o MSX-DOS pense que o acionador atual é A: , e você solicita um arquivo de B: dará a 
seguinte mensagem: 


Insert diskette for drive B: and strike 
any key when ready 


Retire o disco que está no acionador, insira aquele que você quer acessar e pressione qualquer 
tecla. Agora o MSX-DOS pensa no acionador como tendo a letra que foi especificada. 


178 


MSX Guia do Usuário 


Caso o programa não esteja no acionador assumido e você não especificou o disco que 
deve ser procurado, será impresso na teia -(pelo MSX-DOS) a mensagem “Bad command or 
file name”. 

Uma maneira de processar um comando de um disco diferente é alterando o acionador 
assumido (o que se pode tomar um transtorno se feito com' freqüência). Felizmente, existe uma 
maneira mais fácil de informar ao MSX-DOS onde procurar. Basta dar o nome do acionador de 
disco antes do programa. 

Por exemplo, caso o acionador assumido seja B: } e o MBASIC.COM está em 
À: , dê o comando: 

B> A: MBASIC 

Assim o MSX-DOS é informado de que não deve olhar no acionador assumido, mas 
apenas o A: . É mais fácil do que alterar o acionador assumido como no exemplo 
seguinte: 

B > A: 

A > MBASIC 


Fornecendo Argumentos aos Comandos 

Os comandos do MSX-DOS utilizados até agora foram bem simples. É possível fornecer 
maiores informações ao MSX-DOS quando são dados comandos que permitam ao MSX-DOS 
executar tarefas mais complexas. 

Um maior número de informações pode ser fornecido ao MSX-DOS pela utilização de 
argumentos — da mesma forma que os argumentos do MSX-BASIC. Quase todos os comandos 
do MSX-DOS têm argumentos necessários ou opcionais. Você terá um computador mais eficiente 
se souber utilizar os argumentos. 

Por exemplo, você já viu como o comando DIR imprimiu uma lista de arquivos 
existentes no disco: 

A> DIR 

0 comando DIR, sem argumentos, lista os arquivos existentes no acionador assumido, 
que no caso é A: . É possível fornecer ao comando um argumento opcional que define 
de qual acionador desejamos ver o diretório. Por exemplo, para ver os arquivos no 
acionador B: , digite: 

A> Df R B: 

Neste caso B: é um argumento da instrução DIR que instrui o comando amostrar os 
arquivos de B: , e não aqueles do acionador assumido. 


Utilizando o MSX-DOS : apresentando comandos e arquivos 


179 


O comando DIR tem um argumento opcional uma vez que pode operar com ou sem ele. 
Alguns comandos, entretanto, têm argumentos solicitados porque precisam saber no que operar; é 
o mesmo conceito aprendido nos argumentos do MSX-BASIC. 


Por exemplo, o comando TYPE do MSX-DOS, que apresenta o conteúdo de 
um arquivo na tela, exige que você dê o nome do arquivo, cujo conteúdo queremos 
ver. Vamos supor que exista interesse em ver o texto de um arquivo chamado 
ACCNTS.RPT. Deveria dar o comando: 

A> TYPE ACCNTS.RPT 

O conteúdo de ACCNTSPRT será impresso na tela. Se tivesse sido digitado apenas 
TYPE sem argumento, o MSX-DOS teria respondido com uma mensagem de erro 
“Invalid number of parameters”. 


Nem todos os arquivos podem ser vistos de forma legível pela utilização do comando TYPE. 
Caso você faça a tentativa de digitar um arquivo que não esteja na forma ASCII, seu computador 
apresenta uma série de caracteres ilegíveis na tela. 

Existem diversos tipos de argumentos que podem ser fornecidos aos comandos; os mais 
comuns são nomes de acionadores de disco ou arquivos. Nos dois exemplos anteriores, o comando 
DIR levou o nome de um arquivo B: , enquanto o comando TYPE levou o nome de um arquivo 
(ACCNTS.RPT). Outros tipos de argumentos são explicados no Capítulo 19; a seção “Como 
ler a sintaxe de comando” explica a apresentação dos argumentos. 


Alguns Comandos Simples: FORMAT e COPY 

Agora que você viu como iniciar o MSX-DOS e dar-lhe comandos, já está em condição de 
utilizar o seu computador de maneira prática. A primeira tarefa que deve ser aprendida é como 
preparar e copiar seus discos. Os comandos MSX-DOS serão utilizados um pouco mais nesta 
seção. 

PREPARANDO O DISCO COM O COMANDO FORMAT 

A maioria dos discos quando é comprada não está pronta para ser utilizada. Deve-se inicial- 
mente “formatá-los”. O processo de formatação significa colocar marcas magnéticas no disco, de 
maneira que o MSX-DOS saiba como encontrar o local certo para a colocação dos dados no disco. 

Formatar um disco é semelhante à pintura das faixas brancas em um estacionamento. O 
padrão de formatação no disco informa onde o MSX-DOS deve colocar os dados. Quando o 
estacionamento é novo, não haverá linhas anteriores: entretanto, se houverem linhas antigas, 
todo o estacionamento terá, primeiro, de ser pintado de preto, de modo que as linhas novas se 
destaquem. Pintando o estacionamento de preto, ou formatando o disco, toda a “informação” 
anterior se perde. 


■ 


180 MSX Guia do Usuário 


Portanto, quando um disco já utilizado é formatado, toda informação existente é destruída. 
Ao utilizar o comando FORMAT, deve-se tomar o cuidado de não utilizar um disco que tenha 
informações que serão usadas no futuro. Antes de formatar um disco utilizado anteriormente 
verifique o seu conteúdo com o comando DIR. Os discos rígidos normalmente já estão formatados; 
é pouco provável que você algum dia precise formatar um disco rígido. 

O comando FORMAT leva como argumento o nome do acionador que vai ser formatado. 
É idêntico ao comando CALL FORMAT do MSX-BASIC. 


Por exemplo, para formatar um disquete no acionador B; , dê o comando: 
A> FORMAT B: 

Quando o MSX-DOS solicita o acionador que deve ser formatado, responda B: . Em 
seguida ele vai pedir que você coloque um disquete no acionador B: ; coloque o dis- 
quete e pressione qualquer tecla. O disco no acionador B: será formatado. 


Copiando Arquivos com o Comando COPY 

O comando COPY permite que um arquivo seja copiado de um disquete para outro. O 
comando COPY tem no mínimo dois argumentos: o nome do arquivo a ser copiado e o do 
acionador em que este arquivo será copiado. (Na verdade, o comando COPY pode fazer muito 
mais, mas suas outras funções são descritas em detalhes no Capítulo 19 .) O comando COPY do 
MSX-DOS é semelhante ao comando COPY do MSX-BASIC. 


Por exemplo, se é dado o comando: 

A> COPY MBASIC.COM B: 

O MSX-DOS vai copiar o arquivo MBASIC.COM do disco A: para o disco B: 


UTILIZANDO FORMAT E COPY PARA FAZER UMA RÉPLICA 
DE SEU DISQUETE DE SISTEMA 

Agora que conhecemos os comandos FORMAT e COPY, devemos utilizá-los de forma 
adequada. Nesta seção faremos uma cópia duplicada do disco de sistema do MSX-DOS (o dis- 
quete utilizado para dar início ao MSX-DOS). 

Por que fazer uma cópia do disquete de sistema? Não é aconselhável confiar em um único 
disquete utilizado diariamente. Muitos acidentes podem acontecer: uma eliminação acidental, 
café derramado, ou mesmo a falta de energia elétrica durante uma leitura ou uma gravação no 
disco poderá danificar o disquete e/ou os arquivos que ele contém. 


181 


Utilizando o MSX-DOS: apresentando comandos e arquivos 


Para evitar uma catástrofe, deveremos fazer uma cópia .deste disquete e utilizar a cópia 
em vez do original. Caso aconteça algo com a cópia, basta fazer outra. Os comandos FORMAT 
e COPY permitem que você faça cópias de seu disquete de sistema MSX-DOS. 

Uma vez que um novo disquete foi formatado, o próximo passo é copiar todos os arquivos 
do disquete de sistema. 


Por exemplo, caso você tenha um computador com dois discos, inicialmente 
coloque o disquete do sistema no acionador A: . Em seguida dê o comando 

A> FORMAT 

e responda à solicitação. 0 disquete ainda não tem como conteúdo os arquivos MSX- 
DOS indicados na listagem do diretório. Para copiar estes arquivos, dê o comando; 

A> COPY A: * : * B: 

Se tiver apenas um acionador, terá de mudar os disquetes enquanto o MSX-DOS 
copia os arquivos. O disquete no acionador B: agora está em condição que permite 
iniciar o computador. O *. * utilizado no comando COPY é explicado posterior- 
mente. Informa ao MSX-DOS para copiar todos os arquivos que estão em A; , inde- 
pendentemente de seus nomes. 


PROTEGENDO O DISQUETE DE SISTEMA CONTRA GRAVAÇÃO 

Agora que foi feita uma duplicação do disquete de sistema, devemos protegê-lo contra 
rasuras acidentais ou alterações indesejáveis. Isto pode ser feito protegendo-o contra gravações. 

Se seu computador utiliza disquetes de 5 1/4”, você já deve ter observado o entalhe 
existente em seu lado direito, a aproximadamente 2,5 cm de sua parte superior. É o que se 
denomina “entalhe de proteção contra gravação escrita” (indicado na Figura 18,1). Quando 
este entalhe é coberto, o MSX-DOS protege o disco, não permitindo que escrevamos nele, No 
entanto, o MSX-DOS continua permitindo que ele seja lido. 

Quando seu computador utiliza disquetes de 3 1/2", o pequeno furo no canto superior 
direito é utilizado para proteger o disco contra gravação. O método utilizado para proteger este 
disco depende do tipo de disco adquirido. Alguns têm uma peça de plástico que é deslocada 
para revelar o furo, enquanto outros vêm com uma aba que deve ser quebrada para revelar 
o furo. 

É de^ boa prática proteger os disquetes, tanto os discos que acompanham o computador 
como as cópias do disco de sistema. É claro que se pode retirai a proteção e escrever no disco 
caso seja necessário. A principal razão de se proteger um disco contra gravação é a de diminuir 
a chance de destruir acidentalmente informações importantes. 


182 


MSX Guia do Usuário 



Figura 18.1 Entalhe para proteção contra gravação em um disquete de 5 1/4". 


A Utilização de Arquivos em Comandos e Programas 

A utilização mais comum dos comandos do MSX-DOS provavelmente refere-se à criação 
manutenção e movimentação de arquivos no computador. Existe, sem dúvida, muito mais a ser 
aprendido a respeito de comandos. Entretanto, para utilizar o MSX-DOS com eficiência deve-se 
apenas saber como utilizar alguns comandos comuns, A descrição que segue sucintamente apre- 
senta alguns deles. Como esta seção trata de arquivos, não são apresentadas todas as utilizações 


CRIANDO ARQUIVOS 


s arquivos sao sempre criados por meio de programas. Você pode instruir um programa 
para que ene um arquivo (como um texto criado por um programa de processamento de palavras) 
um programa pode enar arquivos para uso próprio. Nesta seção vamos descrever os métodos 
gerais de enaçao de arquivos sem entrar nos detalhes de cada comando. 

Uma maneira de criar arquivos é com um pacote de processamento de palavras' Outra é a 

121 T 1VOS C ? ° MSX - BASIC - A ^ seus programas aplicativos também criará 

q . r exemplo, um programa contabü ena os arquivos para guardar os números que 
u íliza, e um programa de tabelas cria os arquivos que guardam os modelos financeiros. Adicio- 
n ente, se voce estiver utilizando uma linguagem de programação diferente do MSX-BASIC 
esta permite que seus programas sejam guardados em disco. 


Utilizando o MSX-DOS: apresentando comandos e arquivos 


183 


DANDO NOME AOS ARQUIVOS 

Para que um arquivo possa ser armazenado em disco, ele deve receber um nome. Cada 
arquivo tem uma referência única chamada “especificador de arquivo”. Este especificador é 
desdobrado em duas partes: o nome do arquivo e a extensão. Todo arquivo deve ter um nome, 
mas a extensão é opcional. 0 nome do arquivo e a extensão são utilizados para descrever o 
conteúdo do arquivo. A combinação do nome do arquivo e a extensão deve ser única no disco; 
isto é, um disco não pode ter dois arquivos com o mesmo especificador de arquivo. A regra que 
deve ser memorizada ao nomear um arquivo é a de que o nome do arquivo pode ter até oito 
caracteres e a extensão de até três caracteres. 

O nome do arquivo e a extensão são sempre separados por um ponto. Por exemplo, 
TELS.DAT é um especificador de arquivo: onde TELS é o nome do arquivo e DAT a extensão. 
Outros exemplos de especificadores de arquivo são CONTA.BAS, DENTAL12.COM e TIMEPRNT 
(podemos ter um nome de arquivo sem extensão como no último caso). Quando se pede ao 
MSX-DOS para ler ou escrever um arquivo, é obrigatório dar o nome do arquivo e a extensão, 
quando existir. 

Nos manuais de computadores é normal utilizai “nome de arquivo” em vez de “especi- 
ficador de arquivo . Caso você encontre “nome de arquivo”, lembre-se de que esta referência 
será sempre do especificador completo, incluindo a extensão. A extensão do arquivo muitas 
vezes é denominada “tipo de arquivo”. 

Existe um grau de liberdade bem grande para dar nome aos arquivos, porém lembre-se 
das seguintes regras ao escolher os nomes dos arquivos e suas extensões: 


PERMITIDO 

Todas as letras do alfabeto (maiusculas); 

ABC0EFGH1JKLMN0PQRSTÜVWXYZ 
Os numerais: 

01 23456789 

Muitos símbolos de pontuação, especificamente: 


NÃO PERMITIDO 

Os seguintes caracteres não podem ser utilizados: 

, ■ / \ I ? *”:;[] + = 


Figura 18.2 Nome de caracteres legais e Uegais. 


184 


MSX Guia do Usuário 


• Nçm todos os caracteres existentes no teclado são permitidos em nome de arquivos. 
Muitos são utilizados em outras partes do MSX-DOS, podendo criar confusão se fossem 
utilizados em nomes de arquivo. Os caracteres permitidos e não permitidos estão indica- 
dos na Figura 18.2. 

* Selecione um nome de arquivo pertinente com o conteúdo do arquivo. Por exemplo, uma 
carta dirigida para alguém chamado Carlos poderia ser denominada CARLOS.CRT, ou 
o seu imposto com data-base de 1984 poderia ser denominado IMP-84.DAD. Um nome 
apropriado para os arquivos facilita quando desejamos saber o conteúdo do arquivo, não 
sendo necessário, portanto, observar o conteúdo na tela. 

• O MSX-DOS não permite nomes de arquivos iguais aos dispositivos que ele utiliza. 
(Nomes de dispositivos são nomes de componentes específicos de hardware, como a 
impressora.) Os nomes que não podem ser utilizados são AUX, COMI, COM2, CON, 
LST, LST1, LST2, LST3, PRN e NUL. Depois que você conhecer um pouco mais a 
respeito dos dispositivos, verá porque o MSX-DOS ficaria confuso se estes nomes fossem 
utilizados nos arquivos. 

* Coloque uma extensão em seu especificador de arquivo, mesmo que não seja requerido. 
Um nome mais detalhado lhe dará maiores informações ao ler uma listagem de arquivos, 
Além do que a extensão acrescenta informação ao nome do arquivo que poderá ter 
importância mais tarde. Por exemplo, ao escrever uma carta para Armazém Geral, em 
vez de chamar o arquivo simplesmente de ARMAZÉM, poderia chamá-lo de ARMAZÉM. 
CRT. Quando, mais tarde, é gerado um arquivo com cálculos desta empresa, pode 
chamá-lo de ARMAZÉM.DAD, A extensão permite uma identificação bem simples com 
o outro arquivo ARMAZÉM. 

* Os arquivos que tratam de um mesmo assunto devem ter nomes semelhantes. Desta 
maneira facilitamos a procura no disco de um arquivo ou grupo de arquivos. Assim, os 
memorandos para Sra. Wong poderão ser chamados de WONG1.MEM, WONG2.MEM, e 
assim em diante. 

• Quando possível, utilize extensões padronizadas. A Tabela 1 8. 1 mostra algumas extensões 
convencionais na indústria de microcomputação. Evidentemente, você pode ignorar 
estas convenções e chamar seus arquivos como bem desejar. Porém, alguns programas 
presumem que os arquivos têm certas extensões, não os encontrando se assim não for. 

* Evite a utilização de extensões que tenham um significado especial para o MSX-DOS 
(como COM e EXE e BAT). Caso estas letras sejam utilizadas, o MSX-DOS pode pensar 
que estes arquivos são comandos e tentará executá-los. As conseqüências poderão ser 
desastrosas. (Por outro lado, é possível dizer quais arquivos existentes no disco são 
comandos, programas e arquivos em lote, bastando olhar as extensões. As extensões 
dos comandos são COM ou EXE, e os arquivos em lote têm como extensão BAT.) 

• Apesar de ser permitida a utilização de grande parte dos símbolos de pontuação, a 
maioria utiliza apenas alguns deles. De uma maneira geral, a utilização do cifrão ($), 
do hífen (-) e do sublinhado (_) fornece um número suficiente de caracteres para a 
definição de um nome. A Figura 18.3 mostra alguns especificadores de arquivo válidos 
e não válidos. 


Utilizando o MSX-DOS: apresentando comandos e arquivos 


185 


Tabela 18.1 Extensões comuns de arquivos. 


Extensão 

Significado 

ASM 

Programa-fonte da linguagem assembly 

BAK 

Cópia duplicada de outro arquivo 

BAS 

Programa BASIC 

BAT 

Arquivo em lote 

BIN 

Arquivo binário utilizado por um programa 

C 

Programa-fonte C 

COM 

Programa 

DAT 

Arquivo de dados 

EXE 

Programa 

OBJ 

Arquivo objeto de um compilador 

OVR 

Arquivo adicional de um programa aplicativo 

TEX 

Arquivo de texto 

TXT 

Arquivo de texto 


Válido: 

Válido, porém não recomendável 

MODEMS.DOC 

CHAP-3A.TXT 

PHONES.DAT 

10IDEAS 

XX" ^ ^XX 
lllllllll @@@ 

Não-vãlido: 

Motivo: 

COMPUTERS.DOC 
CHAP-3A TEXT 
PHON ES. NA MES.DATA 
10IDEAS? 

Nome de arquivo com mais de 8 caracteres 
Extensão com mais de 3 caracteres 
Duas extensões 
Caractere não permitido (?) 


Figura 18.3 Exemplo de especificadores permitidos e nao permitidos. 


UTILIZANDO CARACTERES-CHAVE PARA GRUPOS DE ARQUIVOS 

Alguns comandos do MSX-DOS poderão ser utilizados para a operação com grupos de 
arquivos com nomes ou extensões semelhantes. Podemos economizar muita digitação no 
agrupamento de arquivos durante a utilização de um comando. A utilização de um nome comum 
para um grupo de arquivos é como utilizar o sobrenome para um grupo de pessoas. Em vez de 
dizer “eu quero encontrar Roberto Moraes, Maria Moraes. Pedro Moraes e Antonia Moraes” poderia 
dizer “Eu quero encontrar a família Moraes”. Igualmente, poderia utilizar o primeiro nome para 
encontrar um grupo de pessoas: “Quero encontrar todo mundo de nome Sabrina.” 


186 


MSX Guia do Usuário 


A utilização de um nome paia um grupo de arquivos poderá economizar tempo e esforço. 
Por exemplo, pode haver necessidade em se transferir uma cópia dos 40 arquivos de seu programa 
BASIC de A: para B; . Seria necessário dar o comando COPY 40 vezes: 

A> COPY PROG1.BAS B: 

A> COPY PROG2.BAS B: 

e assim em diante. 

Para evitar este trabalho, no MSX-DOS existem dois caracteres especiais que poderão ser 
utilizados no nome dos arquivos quando você quiser especificar mais do que um arquivo: o ponto 
de interrogação (?) e o asterisco (*). Estes caracteres são utilizados nos especificadores de arquivo 
quando desejamos que o MSX-DOS atue sobre um grupo de arquivos e não sobre um único 
arquivo. Em vez de casar os nomes dos arquivos letra por letra, estes caracteres fazem o MSX-DOS 
procurar arquivos que tenham qualquer caractere naquele ponto do arquivo em que se encontra 
o ? ou *. Da mesma forma que um caractere-chave, em um jogo de cartas, pode ser utilizado 
para representar qualquer carta, estes dois caracteres podem ser utilizados para representar qual- 
quer caractere do teclado. São, corretamente, denominados caracteres-chave. 

O ? é utilizado para combinai com qualquer caractere na posição em que aparece no nome 
do arquivo. 


Por exemplo, caso você queira copiar todos os arquivos que tenham cinco letras 
de comprimento, sendo que os quatro primeiros são PROG e tenham como extensão 
BAS, poderia dai o comando: 

A> COPY PROG? .BASB: 

O comando vai copiar, do acionador A: para o disquete do acionador B: , os arquivos 
PROG1.BAS, PROG2.BAS, PROGA.BAS, PROGB.BAS e assim em diante. Ele não 
copiará nenhum dos programas PROGIO.BAS ou PROGBM.BAS, uma vez que estes 
nomes têm mais letras do que PROG7.BAS e o ponto de interrogação representa 
apenas um caractere. Outro exemplo será: 

A> COPY TAXP83.DAT B: 

Este comando copiaria os seguintes arquivos: TAXA83.DAT, TAX183JDAT, TAX-83. 
DAT e assim em diante; não copia TAXAB83.DAT ou TAXA.DAT. 


Outro caractere-chave, o caractere * , combina com qualquer número de caracteres na posição 
em que se encontra no nome do arquivo. Significa que o número de letras combinadas não é 
importante, e que podem ser combinados arquivos com números diferentes de letras no local 
especificado com o caractere * . 


Utilizando o MSX-DOS : apresentando comandos e arquivos 


187 


Por exemplo, para copiar qualquer arquivo que tem o nome iniciando com 
PROGR e cuja extensão é BAS, dê o comando: 

A> COPY PROG*. BAS B: 

Confere com PROG1.BAS, PROGL4.BAS, PROG9999.BAS e PROG2S2£.BAS. 


Comparando este exemplo com o anterior, utilizando o asterisco (algumas vezes denominado 
estrela) sempre serão combinados pelo menos o mesmo número de arquivos do que com o ponto 
de interrogação. 

Poderá ser utilizado mais do que um caractere-chave em uma especificação de arquivo. Por 
exemplo, B???E,* combina nomes de arquivos como BLARE.COM, BOOOE.123, B-D-E.TXT 
e BRAKE. 

Com a utilização do caractere-chave, o problema de como copiar todos os programas 
BASIC de A: para B: fica muito mais fácil de ser resolvido. Para copiar qualquer arquivo que 
tenha a extensão BAS, independentemente do número de letras no nome, o nome do arquivo 
deve ser substituído por um asterisco depois do comando COPY; 

A> COPY *.BAS B: 

Quando, em lugar disto, você quer copiar todo arquivo para B: , independentemente de 
seu nome ou extensão, dê o comando; 

A> COPY \ * B: 

É o mesmo procedimento utilizado anteriormente nesta seção para fazer uma cópia do 
disquete de sistema. 


UTILIZANDO OS NOMES DE DISPOSITIVOS NOS COMANDOS 

Como foi visto, o comando COPY pode ser utilizado tanto para copiar arquivos de (ou para) 
um disco como também para movimentar informações entre dispositivos. 0 MSX-DOS fornece 
uma maneira muito simpLes de comunicação com dispositivos, como uma impressora e portas 
de comunicação. 

É mais do que provável que será necessário utilizar nomes de dispositivos com o comando 
COPY, porque a maioria dos programas que utiliza dispositivo tem comandos internos que 
imediatamente se comunicam com os dispositivos. Os nomes estão relacionados e definidos na 
Tabela 18.2. Todos os nomes de dispositivos têm três caracteres (às vezes seguidos por um 
número). Alguns dispositivos são sinônimos, como AUX e COMI, ou LPT1 e PRN. É muito 
comum que os estreantes em MSX-DOS confundam nomes de arquivos com nomes de dispositivos. 

Em vez do nome do arquivo no comando COPY, utilize o nome do dispositivo. Da mesma 
forma que um arquivo, qualquer dispositivo pode ser utilizado para inserção (leitura) ou saída 



188 


MSX Guia do Usuário 


i 


(gravação). Na verdade, como a comunicação com estes dispositivos se processa de forma similar 
ao processo de copiar dados de e para arquivos, veremos que o aprendizado dos nomes dos 
dispositivos é uma continuação do aprendizado do nome de arquivos. O único comando com o 
qual se utiliza o nome dos dispositivos é o COPY. 


Tabela 18.2 Nomes de dispositivos utilizados pelo MSX- DOS, 


Nome Dispositivo 

CON Console. É na verdade a combinação do teclado com a tela. A 

entrada é feita pelo teclado e a saída aparece na tela. 

AUX A primeira porta de comunicação (serial). Também é referida como 

e Porta de Adaptação para Comunicação Assíncrona ou Porta RS-232. 

COMI Nem todos os computadores têm esta porta. As portas de comuni- 

cação dois e três (se existirem em seu computador) são denominados 
C0M2 e COM3. 

LPT1 Porta da impressora paralela. Esta pode ser chamada ainda de Porta 

ou Centronics ou Porta Paralela. Nem todos os computadores têm esta 

PRN porta. Como muitas impressoras utilizam uma porta serial, poderá 

ser necessário se fazer um redirecionamento de E/S para esta porta 
com o comando MODE ou outro comando similar fornecido pelo 
fabricante. As, portas paralelas dois e três (caso existam) são deno- 
minadas LPT2 e LPT3. 

NUL Um dispositivo inexistente, utilizado apenas para teste de programas 

aplicativos. 


Por exemplo, poderá haver necessidade de enviar um arquivo para a impressora; 
para tanto, dê o comando: 

A> COPY ARQUIVO.TXT PRN 

Desta maneira o arquivo ARQUTVO.TXT, existente no disquete do acionador A: , será 
copiado para a impressora. 


Utilizando Arquivos-em-Lote para Combinar Comandos MSX-DOS 

Agora que já aprendemos uma série de comandos MSX-DOS e estamos familiarizados com 
o procedimento geral para sua utilização, estamos em condição de executar um grupo deles, um 
após o outro. Existindo diversos comandos que devem ser executados, uma maneira de ganharmos 
tempo é pela sua combinação em um arquivo de texto denominado “arquivo-em-lote”. Ao pro- 


Utilizando o MSX-DOS: apresentando comandos e arquivos 


189 


cessar um arquivo-em-lote, os comandos serão processados como se estivessem sendo digitados 
no momento da execução. 

Escrever um arquivo-em-Lote é còmo escrever um programa muito simples que fornece ao 
MSX-DOS uma lista de comandos a serem executados. Porém, é bem mais simples do que 
programar. Quando os comandos estão prontos para ser executados, basta fornecer ao MSX-DOS 
o nome do arquivo-em-lote, em lugar do nome de cada um dos comandos. 

Os comandos ou programas que podem ser utilizados em um arquivo-em-lote são os mesmos 
que para a solicitação A>. Observe como este tipo de combinação de comandos evita um excesso 
de digitação. 


Por exemplo, vamos supor que você esteja utilizando um programa de contabi- 
lização denominado ACCT, que gera um arquivo denominado SALES.DAT.* Este 
programa é processado todo dia, sendo que toda vez em que ACCT é processado, é 
utilizado também o comando COPY para copiai o arquivo SALES.DAT no arquivo 
SALESNEW.DAT. Adícionalmente, o programa ACCT exige que se dê o nome dos 
dois outros arquivos com quem opera, MAINÀCCT.DAT e NEWREPT.TXT, na linha 
de comando. Sem a utilização do arquivo-em-lote, seriam dados os comandos: 

A> ACCT SALES.DAT MAINACCT.DAT NEWREPT.TXT 
A> COPY SALES.DAT SALSNEW.DAT 
A> ■ 

Uma vez que sempre são digitados os nomes dos três arquivos e o segundo comando, o 
tempo de digitação poderá ser bastante reduzido pela utilização de arquivo-em-lote. 
Para gerar um arquivo-em-lote utilizamos um editor de texto. Suponhamos que foi 
criado o arquivo-em-lote DÀILY.BAT : 

J DAILY.BAT V 

ACCT SALES.DAT MAINACCT.DAT NEWREPT.TXT 
COPY SALES.DAT SALESNEW.DAT 


V. J 


Agora para processar o arquivo-em-lote, basta que seja fornecida um único 
comando, simples, DAILY, para o MSX-DOS (não há necessidade de digitar a extensão 



190 


MSX Guia do Usuário 


BAT). Assim que o MSX-DOS encontra o arquivo-em-lote denominado DAILY.BAT 
inicia a execução dos comandos ali existentes: 

A> DAILY 

A> ACCT SALES.DAT MAINACCT.DAT NEWREPT.TXT 
A> COPY SALES.DAT SALESNEW DAT 
A> ■ 

Note que o MSX-DOS primeiro encontrou o arquivo-em-lote (DAILY.BAT) para em 
seguida executar cada uma de suas linhas. À medida que. cada uma das linhas é 
executada, ela será digitada na tela pelo MSX-DOS. 


REGRAS PARA NOMEAR OS ARQUIVOS-EM-LOTE 

Existem algumas regras que devem ser seguidas durante a nomeação dos arquivos-em-lote: 

Um nome de arquivo^m-loíe deverá incluir a extensão BAT de modo que ao ser dado 
o comando, o MSX-DOS o reconheça como um arquivo-em-lote. 

Nã ° V arquiv °- em ‘l° te ° mesmo nome que o de um comando. Caso isto ocorra, 
o MSX-DOS vai processar o comando, e não o arquivo-em-lote. Quando o MSX-DOS 
recebe um comando, primeiro verifica se este é um comando interno; não sendo, ' 

procura um nome com a extensão COM, em seguida uma extensão EXE e fmalmente 
a extensão BAT. 

Uma vez que os arquivos-em-lote são idênticos aos outros arquivos, aplicam-se as 
mesmas regras quanto aos caracteres que podem ou não ser utilizados. 

Em um arquivo-em-lote podemos colocar qualquer comando MSX-DOS, e podemos dar 
para este tipo de arquivo qualquer comprimento. Cada um dos comandos devem estar em linhas 

separadas, porque o MSX-DOS lê os comandos do arquivo-em-lote como se tivessem sido digitados 
em resposta a uma solicitação do MSX-DOS. 

Para tomar o processamento em lotes ainda mais fácil, o MSX-DOS fornece comandos 
específicos para este fim. Eles permitem que seja feita mudança de discos entre comandos 
verificam a existência de um determinado arquivo, bem como executam outras tarefas úteis! 
Estes comandos são descritos no Capítulo 19, na seção “Comandos de arquivos-em-lote”. 


UTILIZANDO ARGUMENTOS NOS ARQUIVOS-EM-LOTE 

Nos exemplos anteriores foi visto como utilizar os arquivos-em-lote quando são processados 
sempre os mesmos comandos com os mesmos argumentos. Mas como fazer, caso queiramos dar 

n Zr cornsmdos do voem-lo te um argumento diferente cada vez que ele é executado*? 

U MSX-DOS permite que seja utilizado “substituição J de argumento” para mudar o argumento 
ao processar o arquivo-em-lote. Os novos argumentos são então utilizados nos comandos existen- 


Utilizando o MSX DOS: apresentando comandos e arquivos 


191 


tes no arquivo-em-lote. Felizmente, o MSX-DOS não se incomoda com o tipo de argumento 
dado; poderá ser o nome de um arquivo, o nome de um acionador ou qualquer outro argumento 
de sua vontade. 

Para substituir um argumento na linha de comando de um arquivo-em-lote, é utilizado o 
sinal percentual e o número do argumento no arquivo-em-lote. (Por exemplo, o primeiro argu- 
mento seria denominado %i.) O sinal percentual informa ao MSX-DOS que deve substituir %1 
no arquivo-em-lote com o primeiro argumento da linha de comando, para substituir %2 do 
arquivo-em-lote com o segundo argumento da linha de cornando, e assim em diante. Em seguida 
é apresentado um exemplo mostrando quando uma substituição de argumento pode ser útil. 


Vamos supor que haja necessidade de copiar um grupo de arquivos-relatório do 
disco A: para o disco B: ou C:. Poderiamos fazer dois arquivos-em-lote diferentes 
— um que copia os arquivos em B: e o outro que os copia em C: . Porém, para 
economizar ainda mais o tempo, podemos escrever um arquivo-em-lote que utiliza 
substituição de argumento, O arquívo-em-lote RPTCOPY.BAT poderia ser: 


J rptcopy. bat\_ 


COPV * RPT %^ 


Observe que neste arquivo-em-lote, o segundo argumento após o comando 
COPY é %1. Sempre que este arquivo-em-lote é utilizado, deve-se fornecer como 
argumento o nome do disco em que se deseja copiar os arquivos. Assim o MSX-DOS 
substitui no comando COPY de seu arquivo-em-lote o nome do dispositivo dado. 

Para processar o arquivo-em-lote RPTCOPY tendo C: como argumento, 
digite: 


A> RPTCOPY C: 

A> COPY *. RPT C: 

5 File (s) copíed 


A> ■ 


192 


ÀfSX Guia do Usuário 


Assim que o MSX-DOS encontra %l em seu arquivo-em-lote RPTCOPY, substitui-o 
por C: , porque este é o primeiro argumento na linha de comando. O mesmo arquivo- 
em-iote poderá ser utilizado para copiar no disco B : 

A> RPTCOPY B: 

A> COPY *. RPT B: 

5 File (s) copied 

A> ■ 


'• existain diversos comandos que utilizem o mesmo argumento cada vez em que é 

processado o arquivo-em-lote, o argumento percentual pode ser utilizado mais do que uma vez. 


Por exemplo, suponhamos a existência de dois comandos CALC-BEG e CALC- 
END, que sempre são processados em conjunto. Cada comando utiliza o mesmo argu- 
mento, o nome de um arquivo de dados. Podemos escrever um arquivo CALCBOTH 
BAT para processar tanto o programa CALC-BEG como o programa CALC-END 
com o mesmo argumento: 


J CALCBOTH. BAt\ 

CALC-BEG %1 
CALC-END 961 




Ao processar este arquivo com o argumento FY19S2.DAT, veremos na tela: 
A> CALCBOTH FYl982.DAT 
A> CALC-BEG FYl982.DAT 
A> CALC-END FY1982.DAT 


A> [ ] 


Utilizando o MSX-DOS . apresentando comandos e arquivos 


m 


Se houver necessidade de substituir diversos argumentos em um comando, podemos 
utilizai mais símbolos percentuais: %2. %3. %4 e assim em diante. De fato, o MSX-DOS permite 
que sejam fornecidos até nove argumentos ao seu arquivo-em-lote. Caso seja utilizado um 
segundo argumento, o MSX-DOS substitui cada um dos %2 existentes em seu arquivo-em-lote 
com o segundo argumento; substituirá cada %3 com o terceiro argumento e assim em diante. 

A capacidade do MSX-DOS de incluir diversos argumentos em seu arquivo-em-lote é uma 
ferramenta muito útil. Deste modo é possível criar arquivos-em-lote que realizam tarefas 
complexas. 


Vamos supor que haja necessidade de fornecer um único nome ao segundo e 
terceiro arquivos no programa de contabilização do arquivo DAILY.BAT, do exemplo 
anterior. Iniciaríamos reescrevendo o arquivo de maneira que sejam incluídos dois 
argumentos para serem substituídos; 


J DAILY.BAT 


ACCT SALES.DAT %1 %2 

COPY SALES.DAT SALESNEW.DAT 


A seguir será dado o comando DAILY e os dois nomes de arquivo: 

A> DAILY RECEIVE.DAT RCVREPT.TXT 
A> ACCT SALES.DAT RECEIVE.DAT RCVREPT.TXT 
A> COPY SALES.DAT SALESNEW.DAT 
A> ■ 


Agora que estamos familiarizados com os argumentos de substituição dos arquivos-em-lotes, 
já sabemos porque devemos evitar a utilização do sinal percentual nos nomes dos arquivos. Caso 
exista um especificador de arquivo, em seu programa de lote, que tem o sinal percentual (como 
N%X.DAT). será necessário lembrar de dar-lhe outro sinal percentual (como N%%X.DAT). O 
segundo sinal percentual informa ao MSX-DOS que o primeiro sinal é parte do nome do arquivo. 


194 


MSX Guia do Usuário 


0 ARQUIVO AUTOEXEC.BAT 

Existe um tipo de arquivo-em-lote que ainda não foi comentado. Este arquivo inicia um 
processamento automático (“auto-execução”) cada vez que se inicia o computador. É denominado 
arquivo AUTOEXEC.BAT, e pode ser elaborado de modo a executar certos programas automati- 
camente, ou imprimir os resultados dos programas processados no dia anterior, assim que você 
iniciar o computador. 

Para escrever um programa AUTOEXEC.BAT, basta criar um arquivo-em-lote (como aqueles 
já vistos) e dar-lhe o nome de AUTOEXEC.BAT. Podemos escrever um arquivo AUTOEXEC.BAT 
com qualquer comando desejado. Cada vez que o MSX-DOS é iniciado, ele vai procurar o arquivo 
de nome AUTOEXEC.BAT, Encontrando-o, automaticamente executa os comandos. Casualmente 
este é o arquivo especial mencionado no início deste capítulo que impede o MSX-DOS de pedir-lhe 
a data e a hora. 

Os comandos que estabelecem os sistemas (como data e hora) são normalmente colocados 
no arquivo AUTOEXEC.BAT. Podem ser incluídos pacotes de software, que devem ser carregados 
na memória assim que o sistema é ligado. Um arquivo AUTOEXEC.BAT típico é apresentado no 
final da seção “Comandos de arquívos-em-lote” do Capítulo 19. 

Um Modelo de uma Sessão com MSX-DOS 

Agora você já sabe quase tudo a respeito do MSX-DOS que lhe permite iniciar sua utilização 
como um profissional. Nesta seção vamos apresentar o exemplo de uma sessão típica com um 
computador, utilizando o MSX-DOS. 

Suponhamos que a tarefa do dia seja a de processar um pacote, que tenha como resultado 
um relatório, que é parte de seu sistema de controle de inventário, e ainda escrever um memorando 
sobre o resultado do relatório. Você ainda deve imprimir o memorandó e fazer uma cópia, em 
disquete, do memorando e do relatório. Estas tarefas serão apresentadas passo a passo. 


PASSO 1: 

UTILIZANDO UM ARQUIVO-EM-LOTE PARA PROCESSAR O PROGRAMA 

Primeiro você vai processar o programa de relatório do inventário. O processamento do 
programa é simples porque você já escreveu o arquivo-em-lote (chamado INVRPT) que vai tratar 
os três diferentes comandos que normalmente são dados. 0 arquivo INVRPT.BAT contém: 


A> INVRPT 8/1/84 8/15/84 

A> INVMAKE 8/1/84 8/15/84 INVKEY.TXT 


A> INVFILE INVKEY.TXT 


Utilizando o MSX-DOS: apresentando comandos e arquivos 


195 


J INVRPTBAT \ 

INVMAKE %1 %2 INVKEY.TXT 
INVFILE INVKEY.TXT 
INVOUT %2 INVKEY.TXT 



Será necessário, apenas, formar ao arquivo-em-lote quais são as datas iniciais e finais do relatório: 


A> INVOUT 8/1/84 8/1/84 INVKEY.TXT 
0 relatório está arquivado no arquivo INVRPT93.TXT 

A> ■ 

À última mensagem (“o relatório está arquivado...) é impressa pelo programa INVOUT, 
O programa hipotético lhe informa o nome do arquivo gerado e salvo no disco (neste caso, 
INVRPT93.TXT). Quando o programa terminou, a solicitação A> voltou à tela. 


PASSO 2: 

ANALISANDO O RELATÓRIO 

O passo seguinte é a análise do relatório gerado. Pode vê-lo na tela ou imprimi-lo pela 
impressora. Para mostrar o relatório na tela utilize o comando TYPE: 


A> TYPE INVRPT93.TXT 

Relatório de inventário entre 8/1/84 e 8/15/84 

Itens que devem ser requisitados em 8/20/84: 

Item Existente Requisitar Preço 


CF3499 

CF5000 


8 

52 


12 

60 


14.50 

1.19 


196 


MSX Guia do Usuário 


Caso o relatório fique maior do que se esperava, ele pode ser impresso com o comando COPY 
e o dispositivo PRN; 

A> COPY INVRPT93.TXT PRN 

A> ■ 


PASSO 3: 

ESCREVENDO O MEMORANDO 

Após avaliar o relatório, utilize o programa de processamento de palavras para descrever 
um memorando detalhando os resultados. Uma vez que cada processador de palavras é diferente 
do outro, neste livro não vamos explicar como escrever o memorando. 

Vamos supor que você esteja processando um programa de processamento de palavras 
chamado TEXTP e deseja editar o arquivo INVRPT93.TXT, Será dado o comando; 

A> TEXT INVRPT93.TXT 

Você acrescenta um texto ao relatório e rearranja os resultados. Após terminar o memo, vamos 
imprimi-lo pela impressora. Muitos são os processadores de palavras que, ao serem solicitados, 
imprimem o memorando; muitos não o fazem. 


PASSO 4: 

COPIANDO O MEMORANDO E OS ARQUIVOS DO RELATÓRIO 

Lembre-se de que para este trabalho é necessário ter uma cópia do relatório e do memo 
em disco. Para fazer isto deve ser colocado no segundo acionador (B:) um disco já formatado, 
com a certeza de que está vazio pela utilização do comando DIR. 

A> DIR B: 

File not found 

A> ■ 

A mensagem antes de “File not found” poderá variar de acordo com a versão do MSX-DOS 
utilizado. Isto, entretanto, não importa porque encontramos o que queríamos saber: nada há 
no disco. 

Agora podemos copiar o relatório e o memo: 

A> COPY INVRPT93.TXT B: 

1 File(s) copied 
A> COPY NEWINV.MEM B: 

1 File(s) copied 


A> ■ 


Utilizando o MSX-DOS: apresentando comandos e arquivos 


19 7 


Lembre-se de que o comando COPY exige dois argumentos: a origem dos dados e o destino 
dos dados. No caso em questão a fonte é o arquivo A: , o acionador assumido, e o destino é o 
acionador B: , Para termos certeza de que tudo foi copiado de acordo, basta verificar o conteúdo 
de B: com o comando DIR: 

A> DIR B: 

INVRPT93.TXT 8110 8-20-84 10:42p 

NEWINV MEM 613 8-20*84 11:20p 

2 File(s) 151515 bytes free . 

A> ■ 

O comando DIR fomece-Ihe o nome do arquivo, extensão do arquivo, o número de bytes 
no arquivo, a data e hora de sua geração. Informa ainda quantos arquivos existem no disco e a 
quantidade de espaço disponível (“bytes free”) antes que o disco fique cheio. 

Você chegou ao fim de sua tarefa e deve sentir-se satisfeito em poder dar os comandos 
MSX-DOS e em responder às perguntas feitas pelo programa. Agora você está em condição de 
poder aprender muitos outros comandos MSX-DOS descritos no próximo capítulo. 


CAPÍTULO 

19 


COMANDOS MSX-DOS 


Este capítulo descreve os comandos MSX-DOS que acompanham seu sistema e informa 
como utilizá-los. A maioria das descrições dos comandos inclui exemplos que mostram como 
podem ser aplicados. Os exemplos são hipotéticos e contêm nomes de arquivos que não existem 
em seus discos. Devem ser utilizados como protótipos genéricos de utilização de um determinado 
comando para uma determinada finalidade. 

Seu computador poderá ter vindo acompanhado tanto do MSX-DOS como de programas 
aplicativos do tipo para processamento de palavras ou planilhas eletrônicas. Uma vez que o MSX- 
DOS não inclui programas aplicativos, estes não são explicados aqui. Estes programas devem vir 
acompanhados pelo manual de instruções. Caso você tenha discos de programas, sem a documen- 
tação (isto é, um manual que explique como utilizar o programa), peça um ao seu distribuidor. 


Como este Capítulo está Organizado 

Neste capítulo, todos os comandos MSX-DOS são apresentados em grupos funcionais gené- 
ricos. Pqi exemplo, você verá que todos os comandos utilizados para a manutenção de arquivos 
(como copiar e apagar) estão agrupados sob o título “Comandos para Manutenção de Arquivos”. 
A Figura 19.1 mostra estes grupos funcionais e os comandos em cada grupo. 

Cada descrição de comando inclui a seguinte informação: 

• Utilização comum. Esta seção mostra como utilizar o comando e seus argumentos, de 
diversas maneiras. Aqui apresentamos a maioria dos exemplos de cada comando. Alguns 
comandos apresentam, ainda, uma seção denominada “Outras utilizações”, em que são 
descritas utilização menos práticas dos comandos. 

• Regras. Alguns comandos têm regras bem definidas sobre quando ou não podem ser 
utilizados. Estas regras são descritas nesta seção. 


198 


Comandos MSX-DOS 


199 


Comandos MSX-DOS 


Função 


Comandos para Manutenção de Arquivos 

ERASE Remove arquivos do disco 

RENAME Dá nomes novos aos arquivos 

COPY Copia arquivos 


Comando para Saída de Arquivo 


TYPE 


Apresenta um arquivo na tela 


Comandos para Manutenção do Disco 

DIR Apresenta uma lista dos arquivos existentes no disco 

FORMAT Prepara um disco para MSX-DOS 


identificação do Sistema 

DATE 

TIME 

MODE 


Coloca a data 
Coloca o horário 

Altera os parâmetros de comunicação 


Comandos de Arquivos-em-Lote 

PAUSE Aguarda a operação de uma tecla 

REM Coloca uma observação em um arquivo-em-lote 


Outros Comandos 
BASIC 


Processa MSX-BASIC 


Figura 19.1 Agrupamentos de comandos deste capítulo. 


• Avisos e erros comuns. Esta seção relaciona os problemas que normalmente são 
encontrados com determinados comandos; ainda fornece avisos que podem ajudar 
a evitar problemas maiores. 

* Sintaxe. A sintaxe de um comando é um arranjo ordenado dos argumentos do coman- 
do, que são colocados na linh a do comando. Esta seção relaciona a sintaxe de cada 
comando e apresenta um volume de informação muito maior do que o necessário 
para a utilização do comando. (Esta informação ajuda na compreensão exata de como 
dar o comando.) Uma sintaxe generalizada é fornecida na seção de “Utilização 
comum”. 

Como Ler uma Sintaxe de Comando 

Você deve aprender a escrever um pouco da linguagem MSX-DOS, para poder dar um 
comando. Para que o MSX-DOS possa ler o comando, o nome do comando e seus argumentos 
devem ser organizados de acordo com a sintaxe do comando. A sintaxe pode ser curta e simples 
ou longa e complexa. Especifica tudo o que o comando necessita para executar seu trabalho. 



200 


MSX Guia do Usuário 


Pela leitura cuidadosa da sintaxe e pelo fornecimento de todas as informações nos argumentos, 
pode estar certo de que o comando será processado sem problema. 

Para entender como interpretai as notaçoes da sintaxe de comando neste livro, os três 
conceitos que seguem são muito importantes. Observe que a sintaxe dos comandos MSX-DOS 
é diferente daquela mostrada para o MSX-BASIC. 

Símbolos especiais. Este livro utiliza símbolos especiais — relacionados na Tabela 
— para indicar tipos diferentes de argumentos. Qualquer argumento que não se 
apresenta envolto por um símbolo especial é exigido para aquele comando. Como 
será visto a maioria dos argumentos é opcional. Você deve familiarizar-se com estes 
símbolos, já que eles são utilizados neste livro e também em outros livros sobre 
computação. 


Tabela 19.1 


Símbolo Descrição 

[ ] Este símbolo indica que tudo que estiver dentro dele é opcional. 

Este símbolo indica que você deve escolher um dos elementos dentro 
dele. Cada escolha é separada por uma barra vertical ( | ). 

Este símbolo indica que o último argumento pode ser repetido 
novamente. 


Tabela 19.2 Argumentos gerais nas sintaxes de comandos. 


Argumento geral Descrição 


d: 

nomearq 


ext 


esparq 


Representação de disco, como A: e B: 

O nome de um arquivo (ou grupo de arquivos), com exclu- 
são da extensão de arquivo. Podem ser utilizados nomes de 
arquivos-chave a não ser que a descrição do comando diga 
o contrário. 

Extensão de um arquivo ou grupo de arquivos. Podem ser 
utilizados nomes de arquivos-chave, a não ser que a descri- 
ção do comando diga o contrário. 

Um especificador de arquivo, com pelo menos o nome de 
um arquivo. Assim, a sintaxe de esparq é: 

[d: ] nome arq [.ext] 


Um número. Por exemplo, COMn pode significar COMI, 
COM2 e assim por diante. 


Comandos MSX-DOS 


201 


Argumentos itálicos. Estes argumentos, também conhecidos como “argumentos gene- 
ralizados”, sao utilizados para mostrar que o argumento pode assumir diversos valores. 
Por exemplo, na sintaxe TYPEesparq, “esparq” mostra que pode ser utilizado qualquer 
nome de arquivo ou especificação de arquivo. 0 argumento “esparq” é uma palavra 
inventada para mostrar onde deve ser colocado o nome de um arquivo. Alguns argumen- 
tos generalizados, utilizados neste capítulo, estão descritos na Tabela 19.2; outros 
argumentos, específicos para um determinado comando, são descritos à medida que 
aparecem no comando em questão. 

Argumentos com uma letra. Alguns comandos têm argumentos de uma única letra, 
precedidos por uma linha inclinada (por exemplo, ,/V). É importante entender que 
estes argumentos têm significados diferentes em comandos diferentes. A utilização de 
uma mesma letra com significados diferentes poderá criar confusão. É sempre neces- 
sário verificar se este tipo de argumento está sendo utilizado corretamente no comando 
apropriado. (Alguns manuais chamam estes argumentos de “opções”.) Ao digitar estes 
argumentos, certifique-se de que a linha inclinada utilizada é (/), e não (\). 


Nos exemplos seguintes, você poderá verificar como é importante compreender a sintaxe 
de um comando. 


O primeiro exemplo é : 

DIR [d:] 

Com esta sintaxe, o comando DIR pode aparecer só ou com um descritor de disco 
como B:. Outro exemplo será: 

TYPE esparq 

“esparq”, normalmente apenas o nome do arquivo é necessário neste comando. 
Lembre-se de que esparq pode incluir também o nome do disco. 


Interrompendo um Comando 

Pode ser que você queira parar um comando — pois você notou que ele está imprimindo 
algo que você não quer — , após iniciar seu processamento. Isto normalmente pode ser feito pres- 
sionando a tecla CONTROL e ao mesmo tempo a tecla STOP. Assim o MSX-DOS é informado 

de que você quer parar um comando. Após a operação de CONTROL-STOP, a teLa deverá apre- 
sentar A>. Normalmente a operação de CONTROL-STOP funciona, mas nem sempre. 

Quando você quer interromper um comando e a operação descrita não dá resultado, pode 
desligar o computador como um último recurso. Desligai o computador interrompe o que ele 
está fazendo, independentemente das consequências. 


202 


MSX Cuia do Usuário 


0 desligamento do computador é uma maneira efetiva de parar um comando, ma$ não é 
recomendável. Uma informação que está sendo escrita no momento de desligamento da chave 
pode ser seriamente danificada. 

Para interromper temporariamente um programa sem que apareça o sinal A>, pressiona-se 
a tecla STOP. Uma nova operação da tecla STOP normalmente continuará o processamento do 
comando. 


Comandos para Manutenção de Arquivos 

Nesta seção serão abordados os comandos ERASE, RENAME e COPY. 


Comando ERASE 


O comando ERASE remove um arquivo, ou grupo de arquivos do diretório do disco. O 
comando DEL é idêntico ao ERASE. 


UTILIZAÇÕES COMUNS 

Existem diversos motivos para se utilizar o comando ERASE. Se um de seus programas 
criou um arquivo inútil, ou quando há um arquivo que não é mais necessário, eles podem ser 
removidos do disco com o comando ERASE. Uma vez que existe um espaço limitado para 
armazenamento, é importante a eliminação de arquivos velhos, liberando espaço para outros 
arquivos. 

A sintaxe do comando ERASE é 
ERASE esparq 

O processo para o cancelamento de um arquivo é simples, bastando citar o nome do arquivo 
a ser eliminado. 


Por exemplo, para cancelar um arquivo denominado BOSTON88.TST no 
acionador assumido, dê o comando: 

A> ERASE BOSTON88.TST 

ou 


A> DEL BQSTON88.TST 


O arquivo será removido do disco e do diretório. 





Co mandos MSX-DOS 


203 


Com o comando ERASE podem ser utilizados caracteres-chave. Desta maneira, é possível 
eliminar mais do que um arquivo por vez. 


Por exemplo, para cancelar todos os arquivos com a extensão BAK (utilizado 
para arquivos duplicados), dê o comando; 

A> ERASE *.BAK 

Caso solicitemos que todos os arquivos do disco sejam cancelados, antes de fazê-lo o 
comando ERASE faz uma confirmação. 

A> ERASE *. * 

Are you sure (Y/N)? Y 

Sempre que você vê esta mensagem, pense sobre o conteúdo dos arquivos com 
cuidado. Uma vez cancelado, não existe nenhum método simples de se recuperar 
um arquivo; pode, inclusive, ser irrecuperável. 


REGRAS 

0 comando ERASE deve ser informado qual é o arquivo que deve ser eliminado. Quando 
o nome do arquivo é esquecido, o MSX-DOS emite a mensagem “Invalid number of paia- 
meters” (Número de parâmetros incorreto). 

Quando o disco é especificado mas o nome do arquivo é esquecido, o MSX-DOS informa 
“File not found” (Arquivo não encontrado). Tal procedimento é como uma precaução do coman- 
do ERASE, que exige que, quando é especificado um disco, o nome do arquivo tambéin o seja. 


AVISOS E ERROS COMUNS 

Evidentemente, deve haver cuidado para não eliminar arquivos importantes. Caso outras 
pessoas utilizem seu computador, tenha o cuidado antes de cancelar arquivos. Apesar de você 
pensar que um arquivo não tem importância, poderá ser valioso para uma aplicação, feita por 
outra pessoa, que não seja de seu conhecimento. 


SINTAXE 

A sintaxe do comando ERASE é: 

ERASE esparq 

É obrigatório fornecer “esparq” com o comando ERASE. “Esparq” pode conter caracteres-chave. 



204 


MSX Guia do Usuário 


Comando RENAME 


O comando RENAME muda o nome de um arquivo sem alterar o seu conteúdo. O comando 
REN é semelhante ao comando RENAME. 


UTILIZAÇÕES COMUNS 

Existem algumas razões pelas quais você pode querer mudar o nome de um arquivo. O 
conteúdo de um arquivo pode ter sido alterado e o seu nome não é mais apropriado, ou você 
pode ter dado nomes semelhantes para dois arquivos. Um dos arquivos pode ter o nome alterado 
para evitar confusão. 

A sintaxe comum deste comando é: 

RENAMEesparql esparq2 

onde esparql refere-se ao nome original do arquivo, e esparq2 refere-se ao nome novo. 


Por exemplo, para alterar o nome de SALES.DAT para US-SALES-DAT, dê 
o comando: 

A> RENAME SALES.DAT US-SALES.DAT 
ou 

A> REN SALES.DAT US-SALES*DAT 


Podemos utilizar o comando RENAME juntamente com o comando ERASE para nos 
livrarmos da versão atual de um arquivo e substituí-la por uma versão anterior. Isto poderá ser 
necessário quando, ao revisarmos um arquivo, decidirmos que a versão original era mais apropriada. 


Por exemplo, vamos assumir que haja interesse em alterar o nome do programa 
de reserva de um arquivo de cobrança, denominado BILLPROG.COB. Você está utili- 
zando um editor de texto que guarda um arquivo de reserva com o mesmo nome do 
arquivo original, mas com uma extensão BAK. Seriam dados os comandos: 

A> ERASE BILLPROG.COB 

A> RENAME BI LLPROG.BAK BILPROG.COB 


Co mandos MSX-DOS 


205 


Se você apenas quer comutar os nomes de dois arquivos, será necessário utilizar um nome 
temporário, já que o comando RENAME não permite que os dois arquivos tenham os nomes 
alterados ao mesmo tempo. Esta operação poderá ser necessária, quando, após a revisão de um 
arquivo decidimos utilizar a versão anterior, mas queremos manter uma cópia das revisões para 
utilização futura. 


Por exemplo, para comutar os nomes dos arquivos SALEPROG.COB e 
SALEPROG.BAK, digite os seguintes comandos: 

A> RENAME SALEPROG.COB TEMPFiLE.CQB 

A> RENAME SALEPROG.BAK SALEPROG.COB 

A> RENAME TEMPFILE.COB SALEPROG.BAK 

Neste exemplo, TEMPFILE.COB é o nome de um arquivo temporário. 


Quando houver dois ou mais arquivos em um disco que compartilham o mesmo nome ou 
a mesma extensão, podemos utilizar os caracteres-chave para alterar o nome destes arquivos, 
como. um grupo. 


O primeiro exemplo altera todos os arquivos de nome ACCOUNTS para ACC. 
A> RENAME ACCOUNTS.*ACC.* 

O segundo exemplo altera todos os arquivos com extensão TXT para extensão TEX. 
A> RENAME *.TXT *.TEX 


REGRAS 

Não podemos utilizai RENAME para alterar os nomes de um grupo de arquivos que estão 
em discos diferentes; primeiro devemos utilizar o comando COPY para colocar os arquivos no 
mesmo disco, 

Não é possível alterar o nome de . um arquivo para um nome já existente no disco. Caso seja 
feita a tentativa, o MSX-DOS envia a seguinte mensagem “Duplicate file name or file name not 
found” (Duplicação do nome do arquivo ou arquivo não encontrado). 


206 


MSX Guia do Usuário 


AVISOS E ERROS COMUNS 

O erro mais comum é esquecermos a ordem em que devem ser colocados os nomes dos 
dois arquivos. É obrigatória a colocação do nome antigo antes do nome novo; exigência feita 
pelo comando RENAME. (Aqueles familiarizados com o sistema operacional CP/M reconhecem 
que é o oposto às exigências do CP/M). 

Assegure-se de que, quando existirem várias pessoas que se utilizam de seu computador, ao 
alterar o nome de um arquivo, todos os usuários tenham conhecimento do novo nome. À sua 
não informação, ou esquecimento, poderá causar confusão desnecessária. 

Não altere os nomes de arquivos especiais, utilizados por programas aplicativos. Por 
exemplo, o programa Wordstar exige que o arquivo WSOVLYl.OVR esteja no disco. Se você 
alterar o nome deste arquivo não haverá meios de o programa saber o novo nome. 


SINTAXE 

A sintaxe do comando RENAME pode ser: 
RENAME esparql esparq2 


ou 


RENAME esparql nomearq2 [,ext2] 

Na primeira forma, esparql é o nome antigo do arquivo e esparq2 é o novo nome do 
arquivo. Na segunda forma, nomearq2'.ext2 é o nome novo do arquivo (caso você não inclua a 

a extensão, o MSX-DOS utilizará a mesma que havia no nome do arquivo original). Observe que 
o nome antigo é dado primeiro.. 


Comando COPY 


O comando COPY permite que sejam copiados registros de um arquivo para outro. Permite 
também que você copie um arquivo no mesmo disco (porém com um nome diferente), copie 
informação do (e para) os dispositivos de hardware do sistema, bem como combine diversos 
arquivos formando um único. 


UTILIZAÇÕES COMUNS 

O comando COPY é utilizado com freqüência para copiai um arquivo de um disco para 

outro. 


Comandos MSX-DOS 


207 


A sintaxe mais comum deste comando é: 

COPY fonte destino 

Neste caso, “fonte” é o nome do arquivo do qual é feito copia e “destino” é para onde 
você quer copiar o arquivo. 


Por exemplo, caso haja interesse em copiar o arquivo OPENACCT.DAT de um 
disco no acionador À: para um disco no acionador B: , deve ser dado o comando: 

A> COPY OPENACCT.DAT B: 

1 File(s) copied 

O arquivo OPENACCT.DAT será copiado para o acionador B: com o mesmo nome. 


O comando COPY sempre informa quantos foram, os arquivos copiados. Observe que não 
há necessidade de fornecer o nome do arquivo no disco de destino, apenas o nome do acionador. 
Isto se deve ao fato de o comando COPY presumir que você quer que o arquivo novo tenha o 
mesmo nome do antigo. 

Havendo interesse em alterar o nome do arquivo enquanto o MSX-DOS fa Z a cópia no disco 
de destino, basta acrescentar o novo nome ao comando COPY. 


Por exemplo: 

A> COPY OPENACCT.DAT B: NEWACCT.DAT 
1 File(s) copied 

Neste caso, além de copiar OPENACCT.DAT de A: para B: , deu ao arquivo um novo 
nome (NEWACCT.DAT) no disco B: . 


Lembre-se de que é possível utilizar caracteres-chave no nome do arquivo para copiai 
vários arquivos. 


Por exemplo, 

A> COPY *,BAT B: 


Este comando copia todos os arquivos com a extensão BAT do disco A: para B: . 


208 


MSX Guia do Usuário 


Podemos ainda utilizar o comando COPY paia duplicar um arquivo no mesmo disco. Entre- 
tanto, a cópia deve ter outro nome uma vez que o MSX-DOS não permite a existência de dois 
arquivos de mesmo nome em um mesmo disco. 


Para fazer uma cópia do arquivo JUDGES.TXT: 

A> COPY JUDGES.TXT JUDGES.NEW 
1 File(s) copied 

Como vemos, o disco de destino, não sendo especificado significa que a cópia perma- 
nece no mesmo disco. Agora temos uma nova cópia do arquivo JUDGES.TXT (deno- 
minado JUDGES.NEW) no mesmo disco. 


Quando copiamos de um disco para o disco assumido, sem alterar o nome do arquivo, nao 
é necessário incluir o nome do disco de destino. 


Por exemplo, caso A: seja o acionador assumido e desejamos copiar o arquivo 
CASHFLOW.RPT de B: para A: , damos o comando: 

A> COPY B: CASHFLOW.RPT 

O comando COPY duplica o arquivo no acionador assumido. 


0 comando COPY pode ainda ser utilizado quando queremos que o MSX-DOS leia ou 
escreva nos dispositivos de hardware. É bastante comum quando se deseja imprimir um arquivo. 
Para tanto, utiliza-se o nome do dispositivo em lugar do arquivo, e o comando COPY enxerga o 
dispositivo como se fosse um arquivo. Os nomes de dispositivos foram discutidos no Capítulo 18. 
Normalmente não ut iliz amos dispositivos com o comando COPY. 


Querendo imprimir o arquivo OPERWX.FOR na impressora, dê o comando: 
A> COPY OPERWX.FOR PRN 


Quando um dispositivo é definido como fonte, o comando COPY continua a lê-lo até que 
seja digitado CONTROL+Z acompanhado por um RETURN (o CONTROL+Z é denominado 
“marcação de fim-de-arquivo), Este método de determinar o fim de um arquivo pode parecer 
arbitrário; entretanto, quando o comando COPY é utilizado com um dispositivo, ele continuará 
a ler informação do dispositivo até que encontre um “fim-de-arquivo”. 


Comandos MSX-DO S 


209 


Querendo digitai texto diretamente no arquivo SHORT-MEM, tem-se de utilizar 
o seguinte comando: 

A> COPY CON SHORT.MEM 

O dispositivo chamado CON representa o teclado e a tela. Agora tudo que é distado 
será colocado diretamente no arquivo. Observe que a marca de sollclt ^° *° n 
DOS não reaparece. Para terminar, após digitar algumas linhas, opere o CQNTROL+Z 

seguido pela tecla RETURN, 


Utilizando COPY para combinar arquivos. A segunda forma geral da sintaxe do comando 
COPY é: 

COPY fonte 1 + fonte2 destino 

Utilize esta forma para combinar arquivos de ponta a ponta ou concatená-los. Podemos 
concatenar qualquer número de arquivos em um único arquivo de destino. 


Por exemplo, desejando fazer um arquivo chamado STAFF.TXT, que seja uma 
cópia de JANE.TXT seguido por uma cópia de SYLV1A.TXT, de o seguinte coman o: 

A> COPY JANE.TXT + SYLVIA.TXT STAFF.TXT 

JANE.TXT 

SYLVIA.TXT 

1 Fi!e(s) copied 

à medida que o comando COPY adiciona um arquivo ao de destino ele lista este 
arquivo. (Neste caso o destino está no mesmo disco.) ' 


Utilizando o argumento / V com COPY. Poderá haver consequências desastrosas, se 0 MSXdDOS 
comar incorretamente os dados. Mesmo que o MSX-DOS dificilmente erre ao copiar grande parte 
doT— g^a de se sentir seguro a este respeito. Por isto, sempre deve ser utilizado o argu- 

mento /V depois de um comando COPY. 

Tal procedimento toma o comando mais lento, mas assegura que as cópias feitas estão 
certas A certeza de que seu arquivo foi copiado corretamente compensa o tempo que levaria 
paia o MSX-DOS reler aquilo que foi escrito. O argumento /V é colocado no fim do comando 

COPY. 


Por exemplo: 

A> COPY PURCH.ACT B: /V 
1 File(s) copied 

Assim fica garantido que a cópia do arquivo PURCH.ACT, feita pelo MSX-DOS para 
o disco B : , está correta. 


210 


MSX Guia do Usuário 


OUTRAS UTILIZAÇÕES 

Dois outros argumentos, / A e /B, raramente são utilizados com o comando COPY porque 
são confusos. São utilizados para distinguir entre arquivos ASCII e binários (por isto o A e B). 
Enquanto um arquivo ASCII contém apenas texto normal, como uma carta ou um memorando, 
um arquivo binário contém caracteres especiais. Os programas e bancos de dados, normalmente 
são arquivos binários. Os argumentos / A e / B são utilizados apenas quando copiamos arquivos 
que não se enquadram facilmente nestas definições. Leia o manual de referência do MSX-DOS, 
para maiores detalhes a respeito destes argumentos. 


REGRAS 

Não é possível sobrepor um arquivo com ele mesmo. Caso você tente copiar um arquivo 
no mesmo disco, sem alterar seu nome, o MSX-DOS emite a mensagem “File cannot be copied 
onto itself’. 


AVISOS E ERROS COMUNS 

O erro mais comum na utilização do comando COPY é a reversão entre os arquivos de 
origem e destino. A possibilidade de isto ocorrer é maior caso você esteja familiarizado com o 
sistema operacional CP/M, que exige que o destino apareça antes da fonte na linha de comando. 

Quando você tentar copiar um arquivo que não existe, o MSX-DOS emite uma mensagem 
de erro. 


Por exemplo, caso você tente copiar o arquivo TETHER, PRG e este não existe: 

A> COPY TETHER. PRG B: 

TETHER. PRG File not found 
0 File(s) copied 

MSX-DOS emite a mensagem de erro “File not found”. 


Lembre-se da opção /V, ou colocar VERIFY em ON, ao copiar arquivos. Assim evitamos 
erros que poderiam ocorrer quando os arquivos são copiados inconetamente. 

Esteja certo de que o dispositivo está posicionado corretamente, antes de nomeá-lo como 
fopte em um comando COPY. É especialmente importante quando a fonte é a porta de comuni- 
cação. Lembre-se de que o comando COPY espera indefinidameníe pelos dados que devem ser 
enviados pelo dispositivo. Uma vez iniciada a recepção de dados, o comando COPY continua a 
leitura até encontrar um sinal de fim-de-arquivo. Caso seja fornecido, acidentalmente, o nome 
errado do dispositivo no comando e o dispositivo nãç responder, o computador deverá ser 
iniciàlizado. 


Comandos MSX-DOS 


211 


SINTAXE 

à primeira vista a sintaxe do comando COPY poderá parecer estranha; ela é porém muito 
fácil de ser utilizada já que os argumentos / Ae/B raramente são utilizados. São fornecidas em 
diversas linhas as variações sintáticas do comando COPY, que (como a maioria dos comandos 
do MSX-DOS) sempre é dado em apenas uma linha 

Copiando um arquivo normalmente; 

COPY [ { /A } ] esparq [ { /A | /B } ]' 

{ d: | esparq2) t { /A | /B } ] [ /V] 

Concatenando um arquivo: 


COPY [ { / A | /B } ] esparql a [ { /A | /B ) ] 

[ + esparq IbJ [ { /A | /B } ] ... [/V] 

{d:] esparq2 } [{/A | /B } ] [/V] 

Copiando de ou para um dispositivo; 

COPY (esparql | dispositivol } (e$parq2| dispositivo2} 

Em cada uma destas variações sintáticas, esparql é a fonte de cópia e esparq2 o destino da 
cópia. 0 comando COPY sempre copia do primeiro argumento para o segundo. Podemos utilizar 
também os caracteres-chave no nome dos arquivos para copiar vários arquivos. 

{/A | /B } indica que podem ser utilizados / A ou / B com qualquer especiftcador de 
arquivo. 0 significado de / A ou / B depende se você os denomina como arquivos de origem ou 
destino. O/Ae/B podem ser colocados antes ou depois do fonte “esparq”. 

/V faz o comando COPY verificar se os dados copiados no disco de destino estão iguais 
aos do disco de origem. 

O argumento “dispositivo” representa o nome de qualquer um dos dispositivos do MSX- 
DOS, como a impressora LPT1, COMI da porta de comunicação, e assim em diante. Estes dispo- 
sitivos e os nomes dos dispositivos MSX-DOS foram discutidos no Capítulo 18. 


Comandos de Saída de Arquivo 

Esta seção trata do comando TYPE. 


Comando TYPE 


0 comando TYPE apresenta um arquivo de texto na tela. 



212 


MSX Guia do Usuário 


UTILIZAÇÕES COMUNS 

0 comando é muito fácil de ser utilizado. Basta dar o nome do comando seguido pelo 
nome do arquivo: 

TYPE esparq 

O MSX-DOS vai “imprimir” o arquivo na tela. 


Por exemplo, para ver o arquivo LEADSRPT.TXT na tela, dê o comando: 
A> TYPE LEADSRPT.TXT 

Relatório de Vendas 
José Antonio 

Geração de novas sugestões: 


Estes são comandos sequenciais. Significa que ao utilizar um destes comandos, um arquivo 
pode ser visto, seqüencialmente, apenas do começo ao fim; não é possível retroceder e reler uma 
parte do arquivo. Neste sentido os comandos são restritos, já que as pessoas gostam de percorrer 
os arquivos durante a leitura e reexaminar a informação. 

Um modo de você conseguir maior flexibilidade é com a utilização de um editor de texto 
ou processador de palavras que permitem apresentar o conteúdo de um arquivo na tela. Pratica- 
mente todo editor de texto permite que se veja um arquivo de texto e que haja movimentação 
para frente e para trás no arquivo. Assim, para ler um arquivo devemos utilizar o programa de 
processamento de palavras, exceto quando os arquivos de interesse são curtos ou se deseja uma 
cópia impressa deles. 

Com os comandos discutidos nesta seção não é possível apresentar programas ou outros 
arq uivos b inários. Estes arquivos têm normalmente a extensão COM, EXE, OVR e BIN. Os 
arquivos não apresentáveis podem ter até 256 tipos de caracteres; podem aparecer na tela como 
caracteres gráficos ou deixar de aparecer. De qualquer modo, as informações nestes arquivos não 
podem ser utilizadas simplesmente pela sua leitura. 

O comando TYPE, continuamente “rola” o arquivo (isto é, indica linha por linha) na tela. 
Portanto, se o arquivo tiver mais do que as 24 ou 25 linhas que a tela pode apresentai, o texto 
estará se movendo com tamanha velocidade que se toma impossível sua leitura. Paia ler o arquivo, 
devemos operar CONTROL+S para estacionar o texto na tela e operar CONTROL+Q para reiniciar 
o movimento. Para interromper o comando TYPE basta pressionar as teclas CONTROL+C para 
voltar ao MSX-DOS. 


Comandos MSX-DOS 


213 


Quando o arquivo que está sendo digitado tem caracteres tab (criados pela operação da 
tecla TAB), o comando TYPE vai-se deslocar para a coluna seguinte que seja múltiplo de 8 
(isto é, coluna 8, 16, 24 e assim em diante) e imprimir o texto que segue o caractere tab. Assim, 
na impressão do último exemplo, o primeiro caractere impresso aparece na coluna 24 porque 
havia quatro caracteres tab no início da linha. 


AVISOS E ERROS COMUNS 

O comando TYPE não impede que digitemos programas de arquivos e arquivos binários 
na tela. Entretanto, caso o comando TYPE seja utilizado nestes arquivos provavelmente teremos 
anarquia. 


SINTAXE 

A sintaxe do comando TYPE é 
TYPE esparq 

O argumento “esparq” representa o arquivo a ser digitado. Os caracteres-chave não podem 
ser utilizados nesta especificação de arquivo. 

Comandos para Manutenção de Discos 

Esta seção discute os comandos D1R e FORMAT. 


Comando DIR 


O comando DIR lista os arquivos de um disco fornecendo informações sobre seu tamanho 
e a data da última atualização. 


UTILIZAÇÕES COMUNS 

A utilização mais comum do comando DIR é a listagem dos arquivos que existem no disco 
assumido. A sintaxe geral é 


DIR [d:] 



214 


MSX Guia do Usuário 


Por exemplo, para entrar com o comando DIR, digite- 


A> DIR 
CALC 

EXE 

25600 

5-20-84 

DRIVER 

EXE 

32420 

1-27-84 

SALES84 

RPT 

7168 

8-03-84 

MAKEFILE 

BAT 

1664 

4-01-84 

TOTSALES 

DAT 

5888 

3-08-84 

MARTY 

DAT 

1280 

3-08-84 

RDBMS 

COM 

39936 

4-27-84 

RDBMS 

OVL 

33120 

4-27-84 


9 File(s) 

11264 

bytes free 


0 MXS-DOS apresenta uma listagem dos arquivos como está mostrada aqui. 


A listagem DIR contém diversos elementos que você pode não reconhecer: 

As primeiras colunas da listagem DIR apresentam o nome e a extensão do arquivo. Nesta 
listagem, estas duas partes do especifícador de um arquivo não estão separadas com 
um ponto; 

• A terceira coluna contém o tamanho do arquivo, em bytes; 

As duas últimas colunas fornecem a data e hora em que o arquivo foi atualizado pela 
última vez. Se o arquivo nunca foi atualizado, estas colunas fornecem a data e hora de 
sua criação. Alguns computadores não apresentam quando o registro foi criado. Caso o 
seu computador não tenha um calendário em tempo real e você não coloca a data e 
hora como um procedimento rotineiro ao ínicializar o computador, esta data e horário 
poderão estar incorretos; 

• A última linha mostra quantos arquivos existem no disco e quantos bytes estão dispo- 
níveis para outros registros. 

Pela especificação de um outro disco é possível ver seu diretório. 


Por exemplo; 

A> DIR B: 

Com este comando o MSX-DOS apresenta o diretório do disco B: na tela. 


Utilizando DIR em arquivos individuais. O comando DIR permite que visualizemos arquivos 
individuais. Podemos conseguir também a listagem de um grupo de arquivos pela utilização de 
caracteres-chave nos nomes dos arquivos. 


Comandos MSX-DOS 


215 


Por exemplo, vamos supor que desejássemos ver o arquivo MARTY.DAT. 
Daríamos o comando: 

A> DIR MARTY.DAT 
MARTY DAT 1280 3-08-84 

1 File(s) 11264 bytes free 

Havendo interesse em ver todos os arquivos com extensão DAT, devemos dar o 
comando 

A> DIR *. DAT 

TOTSALES DAT 5888 3-08-84 
MARTY DAT 1280 3-08-84 

2 Fileis) 11264 bytes free 


A utilização do caractere-chave (*) para o nome ou extensão do arquivo é tão comum que 
o comando DIR permite que seja excluído. 


Por exemplo, o comando anterior (DIR *.DAT) poderia ser dado como: 

A> DIR '.DAT 

O caractere-chave é desnecessário. Entretanto, o ponto antes da extensão é necessário, 
porque informa ao MSX-DOS que o nome é uma extensão. 


Modificando a listagem DIR com argumentos. O comando DIR pode ser utilizado com dois 
argumentos, /W e /P. Caso o diretório tenha um grande número de arquivos e você não está 
preocupado com o tamanho ou deseja atualizar a informação, o argumento /W pode ser u tiliza do 
para simplificar a lista. 


Por exemplo, observe a alteração nos dois próximos diretórios: 


A> DIR 
CALC 

EXE 

25600 

5-20-84 

DRIVER 

EXE 

32420 

1-27-84 

SALES84 

RPT 

7168 

8-03-84 

MAKEFILE 

BAT 

1664 

4-01-84 

TOTSALES 

DAT 

5888 

3-08-84 

MARTY 

DAT 

1280 

3-08-84 

RDBMS 

COM 

39936 

4-27-84 

RDBMS 

ÜVL 

33120 

4-27-84 


9 File(s) 

11264 

bytes free 


21 6 


MSX Guia do Usuário 


A> DIR /W 
CALC 

EXE 

DRIVER 

EXE 

SALES84 

RPT 

MAKEFILE 

BAT 

TOTSALES 

DAT 

MARTY 

DAT 

RDBMS 

COM 

RDBMS 

OVL 


9 File (s) 

1 1 264 bytes f ree 



O argumento /P fará a listagem do diretório parar ao fim de cada página, A mensagem 
“Strike a key when ready.,.” aparece no fim da tela. O comando DIR aguarda até que seja pres- 
sionada uma tecla antes de continuar. 


SINTAXE 

A sintaxe do comando DIR é 

DIR [d: | esparq] [/P] [/Wj 

Quando o comando DIR é dado sem argumentos, é feita a listagem do disco assumido. 
Quando é especificado d: , será apresentado o diretório deste disco; quando é fornecido “esparq” 
(que pode conter caiacteres-chave) somente sérão listados os arquivos que fizerem parte desta 
“esparq”. 

O argumento /W apresenta os arquivos em cinco colunas na tela, mas não mostra o tamanho 
do arquivo ou a última atualização. O argumento /P faz a listagem parar ao final de cada página. 


Comando FORMAT 


O comando FORMAT prepara o disco (rígido ou flexível) para ser utilizado com o MSX- 
DOS. Alguns fornecedores de discos rígidos para computador exigem que se utilize comandos 
diferentes para formatar seus discos. 


UTILIZAÇÕES COMUNS 

Os disquetes, quando adquiridos normalmente, não estão formatados; o comando FORMAT 
deve ser utilizado antes que sejam feitas tentativas de se escrever arquivos no disco. (No 
Capítulo 17 foram descritos alguns dos conceitos na formatação de discos.) O comando deve 
ser utilizado com cuidado, uma vez que a formatação do disco apaga toda informação armazenada 
nele. Utilize o comando FORMAT na preparação dos discos para o MSX-DOS. 

A sintaxe geral do comando FORMAT é: 


FORMAT 


Comandos MSX-DOS 


217 


AVISOS E ERROS COMUNS 

Novamente alertamos: lembre-se de que o comando FORMAT apaga toda a informação 
do disco destinatário. Por este motivo, ao formatar um disco que já contenha informação, tenha 
certeza de que esta informação não será mais necessária. 


SINTAXE 

A sintaxe do comando de formatação é: 

FORMAT 


Preparação do Sistema 

Esta seção apresenta os comandos DATE, TIME e MODE. Estes comandos são utilizados 
para colocar diversas “identificações de sistema” no MSX-DOS. Consiste em informações internas, 
mantidas pelo MSX-DOS, que o informa como agir. Apesar de estes comandos não serem de 
conhecimento obrigatório, são fáceis de ser aprendidos. 

Toda vez que o MSX-DOS é inicializado, o sistema assume uma situação preestabelecida. 
Quando esta situação não for de seu agrado pode alterá-la com os comandos desta seção. Uma 
vez modificada, os comandos poderão ser incluídos em um arquivo AUTOEXEC.BAT que altera 
a situação automaticamente. Por exemplo, poderia alterar o sinal preestabelecido A> para 
uma cadeia de caracteres. 


Comando DATE 


O comando DATE coloca a data que o MSX-DOS mantém na RAM e utiliza na atuaiizaçao 
dos arquivos. Age como a data que se vê ao inicializar o MSX-DOS. 


UTILIZAÇÕES COMUNS 

Você pode fornecer a data na linha de comando ou fazer o comando DATE solicitá-la 
de você, 

A sintaxe geral é: 

DATE [nova-data] 

Note que este comando coloca a data interna que o MSX-DOS mantém na RAM, e não a data 
de um arquivo colocada quando o arquivo ê escrito no disco). 




218 


MSX Guia do Usuário 


Por exemplo, para fornecer uma nova data na linha de comando, insira: 
A> DATE 4-12-85 

Para que se tenha a solicitação do comando DATE, insira: 

A> DATE 

Current date is Fri 2-1 1-85 
Enter new date: 


Podemos ainda deixar de fornecer a data, pressionando a tecla RETURN, e mantendo a data 
existente antes do comando. 

Alguns computadores têm relógios internos. Em vez de colocar a data e o horário manual- 
mente, o fabricante poderá ter incluído um programa que pode ser processado para ler o relógio 
interno e colocar automaticamente a data e o horário. 


REGRAS 

A data deve ser digitada como três números separados por (-) ou (/). A regra completa 
para a formatação da data foi dada no Capítulo 18 em “Inicializando o MSX-DOS”. 


AVISOS E ERROS COMUNS 

Alguns programas em BASIC alteram a data. Caso você perceba, após o processamento de 
um programa, que a data foi colocada com erro, pode restauTá-la com o comando DATE. 


SINTAXE 

A sintaxe para o comando DATE é: 

DATE [mm-dd-yy] 

onde mm-dd-yy é o mês, dia e ano. Estes parâmetros poderão ser dados tanto com (-) ou (/) 
entre os números. Se não for fornecida uma data na linha de comando, o comando DATE 
pedirá uma. 


Comando TIME 


O comando TIME coloca o horário que o MSX-DOS mantém na RAM e utiliza ná atuali- 
zação dos arquivos. Age como o horário que se vé ao ínicializar o_MSX*DOS, O comando TIME 
não opera na maioria dos computadores MSX. 


Comandos MSX-DOS 


219 


UTILIZAÇÕES COMUNS 

A sintaxe gera] do comando TIME é: 


TIME [novo-horárioj 


0 horário tanto pode ser dado na linha de comando 
comando TIME, 


como pode ser solicitado pelo 


Por exemplo, paia fornecer um novo horário na linha de comando, insira: 
A> TIME 9; 41 

Para que se tenha a solicitação do comando TIME, insira: 

A> TIME 

Current time is 9:41 : 03 
.Enter new time: 


Nao havendo interesse em fornecer o tempo basta operar RETURN, mantendo 
horário de antes do comando, 


o mesmo 


Alguns computadores têm relógios internos. Em vez de colocar a data e o horário manual- 
mente, o fabricante poderá ter incluído um programa que pode ser processado para ler o relógio 
interno e colocar automaticamente a data e o horário. 


REGRAS 


A unica forma aceitavel para o horário é em horas, minutos e segundos separados por dois- 

zi ^sx.^r c \;xi açío do horiii ° foiam dadas na seçso d — d * 


AVISOS E ERROS COMUNS 


gu piograinas em BASIC alteram o relógio para temporizai acontecimentos. Quando 
isto e teito normalmente é colocado em meia-noite (00:00:00). Assim, observando que há erro 
apos processar um programa, o horário pode sei acertado com o comando TIME, 


SINTAXE 

A sintaxe do comando TIME é: 


TIME [hh :mm:ss.xx] 


220 


MSX Guia do Usuário 


onde hh: mm: ss_xx representam as. horas, minutos, segundos e centésimos de segundo. O horário 
deve ser fornecido com vírgulas (e ponto decimal, quando houver muita precisão). Os segundos 
e centésimos de segundos são opcionais. 


Comando MO DE 


O comando MODE estabelece o número de caracteres em cada linha da tela, da mesma 
forma que o comando WIDTH no MSX-BASIC. 

UTILIZAÇÕES COMUNS 

É pouco provável que você queira alterar a Largura da tela, uma vez que há interesse em ter 
o maior número de colunas possível. A sintaxe geral é: 

MODE largura 

onde “largura” varia de 1 até 40. 


Comandos de Arquivos-em-Lote 

Nesta seção são discutidos os comandos PAUSE e REM. Estes comandos sao denominados 
“comandos de arquivos-em-lote”, porque são utilizados apenas dentro deste tipo de registro. 

No Capítulo 18 você aprendeu como escrever arquivos-em-lote. Em resumo podemos dizer 
que arquivos-em-lote são arquivos que contêm uma lista de comandos que normalmente seriam 
fornecidos ao MSX-DOS. Os comandos nestes arquivos podem incluir comandos MSX-DOS, os 
nomes de programas aplicativos ou o nome de outro arquivo-em-lote. Você também tomou 
conhecimento sobre o arquivo AUTOEXEC.BAT, um arquivo-em-lote que é automaticamente 
processado quando o sistema é inicializado. 

Agora, que você já leu a respeito da maioria dos comandos do MSX-DOS, deve ter des- 
coberto alguns deles que deseja incluir no arquivo AUTOEXEC.BAT. 


Comando PAUSE 


O comando PAUSE apresenta a mensagem “Strike a key when ready” (pressione uma tecla 
quando estivei pronto), e aguarda a operação da tecla para poder continuar. 


UTILIZAÇÕES COMUNS 

O comando PAUSE tem muita utilidade quando as operações que estão para serem executa- 
das dependem de algum preparo mecânico. 




Comandar MSX-DOS 


221 


Caso você prepare seu arquivo-em-lote para imprimir o arquivo PAYROLL.RPT 
na impressora, pode haver interesse que o usuário verifique se a impressora está ligada. 
Se o apontador estiver no arquivo PR1.DAT, o arquivo-em-lote conteria: 


J PRNPAY.BAT V 

TYPE PR 1. DAT 
PAUSE 

COPY PAYROLL.RPT PRN 


Este arquivo-em-lote permite que verifiquemos se a impressora está pronta, antes de 
enviar arquivos para ela. Enquanto estiver utilizando o comando PAUSE, você pode 
fazer o que desejar exceto utilizar o teclado. Para continuar o arquivo-em-lote, basta 
acionar uma tecla qualquer. 


Outra utilização comum para o comando PAUSE é permitir que o usuário coloque um 
disquete novo no acionador. 


SINTAXE 

O comando PAUSE é colocado da seguinte forma: 

PAUSE 

Faz parte de um arquivo-em-lote. 

Comando REM 

0 comando REM é utilizado para colocar comentários em um arquivo-em-lote. Não 
fornece resultado algum. É idêntico ao comando REM do MS X- BASIC 



222 


MSX Guia do Usuário 


UTILIZAÇÕES COMUNS 

O comando REM é utilizado para colocar anotações em um arquivo-em-lote, Este comando 
pode ser utilizado para descrever o conteúdo de üm arquivo-em-lote. Ao escrever um arquivo- 
em-lote, pode haver interesse em deixar anotações sobre a finalidade do arquivo. 

E sempre uma boa idéia colocar ao menos um comando REM em um arquivo-em-lote, 
lembrando porque escreveu o arquivo. 


SINTAXE 

A sintaxe do comando REM é: 

REM comentário 

O argumento “comentário” é qualquer texto. O comando REM pode ser colocado em 
qualquer lugar do arquivo-em-lote. 

Comando BASIC 


O único comando MSX-DOS que falta é o comando BASIC, que permite o processamento 
do MSX-BASIC. Sua sintaxe é simples: 

BASIC 

Lembre-se de que o seu computador pode vir acompanhado de outros programas aplicativos. 
Poderão ser vistos com a extensão de arquivo .COM ou .EXE. Processe-os dando o nome do 
arquivo da aplicação. 






APÊNDICE 

A 


REFERÊNCIA AO MSX-BASIC 



Na Figura A-l estão relacionados os comandos MSX-BASIC e na Figura A-2 estão relacio- 
nadas as funções do MSX-BASIC. 

AUTO partida, incremento 
BEEP 

B LOAD nomarq r opçãoprocessamento,compensação 
BSA VE nomarqjsndinicia/,end final, endprocessamen to 
CALL (ou _) nomeprograma 
CALL FORMAT 
CALL SYSTEM 

ClRCLESTEP(x.y), raio r cor, anguloinicial, angulo final, aspecto 

CLEAR tamanhosé rie, espaço livre 

CLOAD nomarq 

CLOSE numeroarquivo 

CLS 

CO LO R primeiroplano,segundoplano , contorno 

CONT 

COPY nomearql TO nomearq2 
CSAVE nomearq, velocidade 
DATA valores 

DEF FN varfargsl - expressão 
DEF valtipo faixa 
DEF USR dígito = n 
DELETE faixa 
DIM variáveis 


Figura A-l Estruturas dos comandos MSX-BASIC. 


225 


226 


MSX Guia do Usuário 


DRAW gml série 
END 

ER ASE matrizes 
ERROR/7 

RELD ftnjargl AS varl 
FILES nomarq 

FOR var = valinicl TO va/final $TEP incremento 
G E T #n,n umerorec 
GOSUB Unha 
G OT O linha 

IF condição THEN declaração 

I F condição THEN declaração I E LS E deciaração2 

INPUT apontador, vars 

INTERVAL OFF/ON/STOP 

KEY LIST 

KEY n , série 

KEY(n) OFF/ON/STOP 

KILL nomea rq 

LET var = expressão 

LFILES nomarq 

LINE INPUT "pon teiro var$ 

LINE INPUT #/ijvar$ " 

LINE STEP (x1,yl) - STEP (x2,y2),cor,B 

LINE STEP (xl ,y1) — STEP (x2 J y2) J cor J BF 

LIST faixa 

LLIST faixa 

LOA D nomarq, R 

LOCATE x, y, cursor 

LPRINT vars 

MAXFILES = « 

MERGE nomearq 
MOTOR OFF 
MOTOR ON 

NAME nomearq I AS nomearq2 
NEW 

NEXT var 

ON ERROR GOTO Unha 
ON INTERVAL - n GOSUB Unha 
ON KEY GOSUB Unhas 
ON Unha GOSUB linhas 
ON linha GOTO linhas 
O N SP RITE GOSUB Unha 
ON STOP GOSUB Unha 


Referência ap MSX-DOS 


227 


ON STRIG GOSUB linhas 

OPEN dispositivo FOR modo AS #n 

OÜT end, valor 

PAINT STEP ix,y), cor r con torno 

PLAY mm /série 

P 0 KE endereço, va for 

PRESET STEP (x,yf,cor 

PRINT #n, USING formatséne, vars 

PSET STEP (x,yf,cor 

PUT # n,recn úmero 

PUT SPRITE n, STEP (x,y), cor, imagem 
READ vars 
REM texto 

R E N UM novaiin,an tigê/in, in cremen to 

RESTO RE Unha 

RÉSUME modo 

RETURN 

RUN nomea rq 

SAVE nomearq,A 

SCR EEN modo, tamanhosprrte,clic, ve/fita, típoimp 
SOUND registro, valor 
SPRITE OFF/ON/STOP 
STOP« 

STOP 'OFF/ON/STOP 
STRIG OFF/ON/STOP 
SWAP varl ,var2 
TROFF 
TRON 

VPOKE end, valor 
WAIT end,endexp,xorexp 
WtDTH n 




228 


MSX Guia do Usuário 


ASS 

INPUT$ 

R1GHT$ 

ASC 

INSTR 

RND 

ATN 

fNT 

RSET$ 

BASE 

LEFT$ 

SGN 

BIN$ 

LEN 

SÍN 

CDBL 

LOF 

SPACE$ 

CHR$ 

LOG 

SPC 

CINT 

LPOS 

SPRITES 

COS 

LSET$ 

SQR 

CSNG 

MIO$ 

STICK 

CVD 

MKD$ 

STR$ 

CVI 

MKI$ 

STRfG 

CVS 

MKS$ 

STRINGS 

DSKF 

OCT$ 

TAB 

EOF 

PAD 

TAN 

EXP 

PDL 

USR 

FIX 

PEEK 

VAL 

FRE 

PLAY 

VPEEK 

HEX$ 

POINT 


INP 

POS 



Figuia A-2 Funções do MSX-BASIC. 


apêndice 

B 


referências ao msx-dos 


A Figura B-l mostra os comandos do MSX-DOS. 


BASfC nomearq 

COPV nomearq nomearq2 /V 

DATE 

DEL nomearq 

DIB nomearq j? /W 

FORMAT 

MODE largara 

PAUSE 

REM texto 

REN nomearq I nomearq2 
TIME 

TYPE nomearq 


Figura B-l 


Estrutura dos comandos MSX-DOS. 


APÊNDICE 

C 


TABELA ASCII 




A Tabela C-l mostig os caracteres que correspondem a cada número na sequência ASCII. 
Observe que alguns dos caracteres gráficos são malformados em uma tela normal: isto decorre 
do fato de sua apresentação deve ser feita em uma tela de 32 colunas. Caso seja dado o comando: 

SCREEN 1 

a aparência dos caracteres corresponde ao desta tabelí. Para a impressão da maioria dos caracteres, 
pode ser utilizado o comando; 

PRINT CHR$(n); 

onde n corresponde ao número do caractere ASCII. Por exemplo, para imprimir o caractere grego 
alfa (ASCII 224), dê o comando: 

PRINT CHR$(224); 

* 

É difícil imprimir os caracteres que têm um valor ASCII entre 1 e 31. Para tanto, devemos 
primeiro imprimir o caractere com o valor ASCII de 1 para em seguida imprimir o caractere 
desejado com um acréscimo de 64 ao seu valor. É melhor explicado com um exemplo. Para 
imprimir outro, que tem um valor ASCII de 3, dê o comando: 

PRINT CHRS(I); CHRSÍ3+64);. 

Observe que isto é verdade apenas para os caracteres com valores de ASCII entre 1 e 31. 

O caractere ASCII de número 0 nada imprime, e o caractere ASCII de número 255 imprime 
o que porventura está embaixo do cursor na sua apresentação na tela. 

230 


Tabela ASCII 231 



Tabela C-l 

A Tabela ASCII. 


Número 

Caractere 

Número 

Caractere 

1 

© 

24 

r 

2 

e 

25 

~! 

3 

¥ 

26 

L 

4 

♦ 

27 

J 

5 


28 

X 

6 

* 

29 

/ 

7 

• 

30 

\ 

8 

B 

31 

— (- 

9 

O 

32 


10 


33 

! 

II 

cf 

34 


12 

9 

35 

# 

13 

P 

36 

s 

14 

fí 

37 

% 

15 

O 

38 

& 

16 

\ 

39 

> 

17 

_L 

40 

( 

18 

T 

41 

) 

19 


42 

* 

20 

h 

43 

+ 

21 

+ 

44 

5 

22 

1 

45 

£ 


23 


46 


232 


MSXGuiado Usuário 


Tabela C-l A Tabela ASCII, (Cont.) 


Número 

47 

Caractere 

Número 

70 

Caractere 

F 

48 

0 

71 

G 

49 

1 

72 

H 

50 

2 

73 

I 

51 

3 

74 

J 

52 

4 

75 

K 

53 

5 

76 

L 

54 

6 

77 

M 

55 

7 

78 

N 

56 

8 

79 

0 

57 

9 

80 

P 

58 

; 

81 

Q 

59 

3 

82 

R 

60 

< 

83 

S 

61 

— 

84 

T 

62 

> 

85 

U 

63 

n 

86 

V 

64 

@ 

87 

w 

65 

A 

88 

X 

66 

B 

89 

Y 

67 

C 

90 

z 

68 

D 

91 

[ 

69 

E 

92 

\ 


Tabela ASCII 


233 



Tabela C l 

A Tabela ASCII. (Cont.) 


Número 

Caractere 

Número 

Caractere 

93 

] 

116 

t 

94 

A. 

117 

u 

95 

— 

118 

V 

96 


119 

w 

97 

a 

120 

X 

98 

b 

121 

y 

99 

c 

122 

z 

100 

d 

123 

{ 

101 

e 

124 

1 

102 

f 

125 

! 

103 

g 

126 

~ 

104 

h 

127 


105 

i 

128 

C 

106 

j 

129 

u 

107 

k 

130 

é 

108 

1 

131 

ã 

109 

m 

132 

'i 

110 

n 

133 

à 

111 

o 

134 

* 

a 

1 12 

P 

135 

ç 

113 

9 

136 

ê 

114 

r 

137 

e 

115 

& 

138 

ê 


234 


MSX Guia do Usuário 


Tabela C-l A Tabela ASCII. (Cont.) 


Número 

Caractere 

Número 

Caractere 

139 

«•* 

i 

162 

õ 

140 

i 

163 

ú 

141 

í 

164 

n 

142 

A 

165 

N 

143 

o 

A 

166 

a 

144 

É 

167 

o 

145 

X 

168 

■ ó 

146 

AL 

169 


147 

ò 

170 

— . 

148 

»• 

o 

171 

Vi 

149 

ò 

172 

Vi 

150 

ü 

173 

i 

151 

u 

174 

« 

152 

y 

175 

» 

153 

0 

176 

à 

154 

ü 

177 

ã 

155 

c 

178 

1 

156 

£ 

179 

T 

157 

Y 

180 

õ 

QO 

VA 

Px 

181 

ò 

‘159 

f 

182 

0 

160 

á 

183 

ü 

161 

í 

184 

Gr 


Tabela ASCII 


235 


Tabela C-l A Tabela ASCII. (Cont.) 


Número 

Caractere Número Caractere 

185 

U 

208 

◄ 

186 

% 

209 

X 

187 

— 

210 

h 

188 

0 

211 

■ 

189 


212 

1 

190 

<tr 

213 

1 

191 

§ 

214 

1 

192 


215 

# 

193 


216 

A 

194 

■ 

217 

+ 

+ 

195 

- 

218 

(JJ 

196 

- 

219 

■ 

197 

i 

220 | 


198 

1 

221 

1 

199 

J 

222 

1 

200 

■ 

223 1 

u 

201 

1 

224 

a 

202 

■ 

225 

P 

203 


226 

r 

204 


227 

ii 

205 


228 

V 

206 


229 

a 

207 ' 

► 

230 





236 


MSX Guia do Usuário 


Tabela C-l A Tabela ASCII. (Cont.) 


Número 

Caractere 

Número 

Caracte 

231 

y 

244 

f 

232 

<t> 

245 

j 

233 

e 

246 

-r 

234 

li 

247 

= 

235 

6 

248 

O 

236 

OC 

249 

• 

237 

<t> 

250 

- 

238 

t 

25 1 

v' 

239 

V 

252 

n 

240 

= 

253 

2 

24! 

± 

254 

a 

242 

243 


255 




APÊNDICE 

D 


o PADRAO msx 



cimenta tfcntn 7 * “* 7 * de to,e "“ P ralci P a,mc " te para os leitores com conhe- 

cimento técnico. Cobrem algumas das partes internas do computador MSX. 

m em ôi F do r pa t:“ d ° ^X' 0 ® A D-2 mostra o mapa de 

““,'n MSX ' BASIC - A Figura D-3 mostra o mapa de memória do MSX-DISK BASIC A 
Tabela D-l mostra posiçoes uteis de RAM. A Tabela D-2 mostra rotinas úteis de ROM que não 
exigem paiametros. A Tabela D-3 mostra os sinais no banamento do cartucho e seu sentido 


0000 

0100 


HIMEM (armazenado 
em FC4A e FC4B> 
FFFF 


DOS Bros 


Programas 

aplicativos 


COMMAND.COM 


Reservado 


Figura D-l Mapa dc memória MSX-DOS 


237 



238 


MSX Guia do Usuário 


0000 


8000 


F380 

FFFF 


MSX-BASIC 


Texto 

Variáveis 

Matrizes 

Pilha 

Séries 

Arquivos 


Reservado 


Figura D- 2 Mapa de memória MSX-BASIC. 


0000 


8000 


HIMEM (armazenado 
em FC4A e FC4B) 

FFFF 



Figura D-3 Mapa de memora MSX-DISK BASIC. 





O padrão MSX 239 


Tabela D-l Posiçoes úteis da RAM. 


Endereço 

Conteúdo 

F380 

Rotina de leitura do conector primário 

F385 

Rotina de escrita no conector primário 

F39A 

Endereço do USRO 

F39C 

Endereço de USR1... 

F3AC 

. Endereço de USR9 

F3B0 

Comprimento da linha 

F3B3 

Modo 0, tabela de nome 

F3B5 

Modo 0, tabela Se cor 

F3B7 

Modo 0, padráo de caractere 

F3B9 

Modo 0, tabela de atributo 

F3BB 

Modo 0, tabela de sprite 

F3BD 

Modo 1, tabela de nome 

F3BF 

Modo 1, tabela de cor 

F3C1 

Modo 1, padrão de caractere 

F3C3 

Modo 1, tabela de atributo 

F3C5 

Modo 1, tabela de sprite 

F3C7 

Modo 2, tabela de nome 

F3C9 

Modo 2 , tabela de cor 

F3CB 

Modo 2, padrão de caractere 

F3CD 

Modo 2 , tabela de atributo 

F3CF 

Modo 2, tabela de sprite 

F3D1 

Modo 3, tabela de nome 

F3D3 

Modo 3, tabela de cor 

F3D5 

Modo 3, padrão de caractere 

F3D7 

Modo 3 tabela de atributo 

F3D9 

Modo 3, tabela de sprite 

F3DB 

Clic de tecla 

F3DC 

Posição do cursor Y 

F3DD 

Posição do cursor X 

F3DE 

Teclas de função da tela 

F3E9 

Cor de frente 

F3EA 

Cor de fundo 

F3EB 

Cor de borda 

F3F6 

Tecla de temporização de varredura 

F3F8 

Endereço do buffer de saída do teclado 

F3FA 

Endereço do buffer de entrada do teclado 

F414 

Número de erro 

F416 

“Flag” de saída para impressora 

F417 

“Flag” da impressora MSX 


240 


J4SX Cuia do Usuário 


Endereço 

F418 

F55E 

F663 

F672 

F676 

F6A3 

F6AA 

F6AB 

F6B3 

F6B5 

F6B9 

F6BB 

F6C0 

F6C2 

F6C4 

F6C6 

F6C8 

F6CA 

F6CB 

F6E5 

F7BA 

F7C4 

F922 

F924 

F926 

F928 

F931 

F93B 

F975 

F9F5 

FA7S 

FC4A 

FCA8 

FCA9 

FCAA 

FCAB 

FCAF 

FCB3 

FCB5 


Tabela D l Posições úteis da RAM. (Cont.) 

Função 

“Flag” para impressão 

Buffer de entrada do teclado 

Tipo de variável atual 

Topo da memória 

Topo do espaço de string 

Apontador de DATA 

“Flag” para o modo interno de AUTO 

Número de linha atual de AUTO 

Número da linha com erro 

Número atual da linha 

Número de linha do ON ERROR GO TO 

“Flag’’ de ON ERROR GOTO 

Próxima declaração 

Topo da área de variável 

Topo da tabela de matriz 

Fim de armazenamento 

Topo do armazenamento de DATA 

Tipo de variável iniciando com “A” 

Tipo de variável iniciando com “B” ... 

Tipo de variável iniciando com “Z” 

Número de funções utilitárias em uso 
“Flag” TRON/TROFF 
Base da tabela de nome atual 
Base da tabela de caractere atual 
Base da tabela de padrão-de-sprite atual 
Base da tabela de atributo atual 

Razão de aspecto para o último CIRCLE (2 bytes) 
Número de pontos no último CIRCLE (2 bytes) 
Fila musical voz 1 
Fila musical voz 2 
Fila musical voz 3 

Posição mais alta de memória disponível 
“Flag” para modo de inserção 
“Flag” para apresentação do cursor 
Estilo do cursor 
Status principal 
Modo atual de tela 
Posição X do cursor gráfico 
Posição Y do cursor gráfico 


0 padrão MSX 241 


Tabela D-2 Rotinas da ROM sem parâmetros. 


Endereço 

Função 

003 B 

Inicializar todos os dispositivos 

003 E 

Inicializar todas as teclas de função 

0041 

Desativar mostrador de tela 

0044 

Ativar mostrador de tela 

Q05F 

Altera cor de tela baseado nos valores RAM 

0066 

Execute as funções NMI 

0069 

Inicializar todo os sprites 

006C 

Inicializar tela para modo 0 

006F 

Inicializar tela para modo 1 

0072 

Inicializar tela para modo 2 

0075 

Inicializar tela para modo 3 

0078 

Colocar a tela em modo 0 

007 B 

Colocar a tela em modo 1 

007E 

Colocar a tela em modo 2 

0081 

Colocar a tela em modo 3 

008A 

Retoma ao tamanho atual de sprite 

0090 

Inicializa som 

0099 

Inicia a tarefa de fundo para PLAY 

009F 

Espera a digitação de caractere 

OOA8 

Retoma status da impressora 

OOAE 

Aceita linha do teclado 

0OB4 

Imprime “?” e depois aceita a linha do teclado 

00BA 

Verifica o status da tecla SHIFT+STOP 

ooco 

Mesmo que BEEP (MSX-BASIC) 

OOC3 

Limpa tela 

OOCC 

Elimina a apresentação da tecla de função 

OOCF 

Apresenta teclas de função 

OOD2 

Vá ao próximo modo 

00 FC 

Mova uma retícula para a direita 

00 FF 

Mova uma retícula para a esquerda 

0102 

Mova uma retícula para cima 

0108 

Mova uma retícula para baixo 


242 


MSX Guia do Usuário 



Tabela D-3 

Sinais 

Pino 

Nome 

E/S 

1 

CS1 

S 

2 

CS2 

S 

3 

CS12 

s 

4 

SLTSL 

s 

5 

res 


6 

RFSH 

s 

7 

WAIT 

E 

8 

INT 

E 

9 

Ml 

S 

10 

BUSDIR 

E 

11 

IORQ 

S 

12 

MERQ 

S 

13 

WR 

s 

14 

RD 

s 

15 

RESET 

s 

16 

res 


17 

Ag 

s 

18 

A15 

s 

19 

All 

s 

20 

AIO 

s 

21 

A7 

S 

22 

A6 

S 

23 

A12 

s 

24 

A8 

s 

25 

A14 

s 


“bus” do cartucho. 

Descrição 

Seleção do RAM 4000-7FFF 
Seleção do ROM 8000-FFFF 
Seleção do ROM 4000-BFFF 
Seleção de dispositivo 
Reservado 
Refrescamento 
Aguardando CPU 
Sinal de interrupção 
Tomar o sinal de ciclo da CPU 
Direção do bus de dados 
Solicitação de E/S 
Solicitação de memória 
Escrever 
Ler 

Reposição do sistema 

Reservado 

Bus de endereço 

93 

33 

99 

33 

99 

3Í 

99 

99 


243 


0 padrao MSX 



Tabela D-3 

Sinais no 

Pino 

Nome 

E/S 

26 

AU 

S 

27 

Al 

s 

28 

AO 

s 

29 

A3 

s 

30 

A2 

s 

31 

A5 

s 

32 

A4 

s 

33 

Dl 

E/S 

34 

DO 

E/S 

35 

D3 

E/S 

36 

D2 

E/S 

'37 

D5 

E/S 

38 

D4 

E/S 

39 

D7 

E/S 

40 

D6 

E/S 

41 

GND 


42 

CLOCK 

S 

43 

GND 


44 

SW1 


45 

+5V 


46 

SW2 


47 

+5V 


48 

+ 12V 


49 

SOUNDIN 

E 

50 

-12V 



“bus” do cartucho. (Cont.) 

Descrição 

5 -» 

33 

53 

35 

33 

33 

33 

Bus de dados 

3 » 

33 

33 

33 

33 

33 

33 

Terra 

Clock da CPU (3.58 MHz) 

Terra 

Detector de inserção de cartucho 
Alimentação 

Detector de inserção de cartucho 

Alimentação 

Alimentação 

Entrada de som 

Alimentação 


APÊNDICE 

E 


APRESENTAÇÃO DO TECLADO 


As figuras abaixo mostram os teclados quando sao pressionadas as teclas RGRAPH e 
LGRAPH. Na Figura E-l temos o teclado para a tecla RGRAPH. A Figura E-2 mostra o teclado 
para as teclas RGRAPH e SHIFT. A Figura E-3 mostra o teclado para a tecla LGRAPH. A 
Figura E*4 mostra o teclado para as teclas LGRAPH e SHIFT. 


ESC / 

+ 

§ 

c 

y 

a 

p 

y 

c 

rri 

<■ 

& 


BS 

TAB ã 

ê 

i ó ã 

é í ó 

Ú 1 0 

ti 

‘ TTiT 

CTRL 

a 

ü 

•'I 

O 

ü 

â 

£E 

'1 

ô ü 

•j 

1 

° 1 


SHIFT i 

à 

c 

T 

ò 

ü 

n 


ã 

a 

0 


SHfFT 


Figra» E-l Teclado paia a tecla RGRAPH. 


244 




Figura Er3 Teclado para a tecla LGRAPH. 






































































APENDICE 

F 


PORTA DE ENTRADA E SAÍDA* 


FF 


F8 


F7 

Audio/Video Control 

FO 


EO 


D8 

* Kanji character ROM 

DO 

A Floppy disk controler 

CO 


B8 

Light Pen in terface 

B4 

BO 

Externai Memory 

A8 

PPI (8255) 

AO 

PSG (AY-3-8910) 

98 

VDP (9918A) 


* Printer interface 

90 


88 


80 

* RS-232C interface 

00 

Not specífied 


Preparado por: Oscar Burd e Luiz Sérgio Young 


índice analítico 


1 


A >, (v. Indicador p, 175*176) 

Acionadoí asssumido , 176-178 

mudando acionadores, 177 
Acionadores de disco, 24 
Alteração de programa, 74-75 
Argumento Step, 101 
Argumentos 

definição, 35 

Armazenamento em cassete, 23 
Arquivo A UTQEXEC.BAT, 175-194 
Arquivos, 

abrindo, 136-137 
acesso aleatório, 139-143 
comandos de manutenção, 35-36 
criando, 182 
fechando, 136-137 
gravando para, 138-139 
lendo de 137-138 
lote, 188-195 
nomeando, 183-184 
Arquivos-em-lote 

argumentos internos, 196-197 
comandos, 220-222 
com comandos MSX-DOS, 188-194 
nomenclatura em, 190 
processamento, 194-195 
Caracteres ASCII, 230-236 
Caiacteres-chave, 185-187 
Caracteres iniciais 

numéricos, 88 
texto, 88 

Cartucho, como utilizá-lo, 31 
Comando BASIC, 222 
Comando BEEP, 124 


Comando BLOAD, 167 
Comando BS AVE, 167 
Comando CALL, 164 
Comando CALL FORMAT, 47, 160 
Comando CIRCLE, 106-110 
Comando COLOR, 97 
Comando COPY, 206-209 

copiando arquivos com, 1 80 
duplicando com, 180-181 
Comando DATA, 158-159 
Comando DATE, 217-218 
Comando DEL, 202 
Comando DELETE, 74 
Comando DIR, 176, 213-216 
Comando DRAW, 112 
Comando END, 55. 136 
Comando ERASE, 202-204 
Comando FIELD, 141 
Comando FOR, 76-78 
Comando FOR OUTPUT, 136 
Comando FORMAT, 216-217 
duplicando com, 180-181 
preparando disco com, 180 
Comando GOSUB, 78 
Comando GOTO, 54 
Comando 1F THEN, 54, 72-74 
Comando IF THEN ELSE, 72 
Comando INKEYS, 83-84 
Comando 1NPUT, 81-83 
Comando KEY, 162 
Comando KEY LIST, 162 
Comando LET, 52 
Comando LINE INPUT, 54,83 
Comando LIST, 45-46 


243 


MSX Guia do Usuário 


Comando LL1ST, 46 

Comando LOCATE do MSX-BASIC, 100 

Comando MID$, 67 

Comando MODE, 220 

Comando NEW, 4$ 

Comando NEXT, 76-78 
Comando ON ERROR GOTO, 150 
Comando ON GOSUB, 79-80 
Comando ON GOTO, 79-80 
Comando ON STOP GOSUB, 154 
Comando PAINT, 110-112 
Comando PAUSE, 220-221 
Comando PLAY, 124-128, 132 
Comando PRESET, 103 
Comando PR1NT, 53, 85 

utilizando toda tela com, 93-94 
Comando PRINT USING, 92 
Comando PSET, 101 
Comando PUT SPRITE, 119 
Comando READ, 158-159 
Comando REM, 53 
Comando RENAME, 202-206 
Comando RENUM, 75 
Comando RESTORE, 159 
Comando RESUME, 150 
Comando RETURN, 78-79 
Comando RND, 67 
Comando RUN, 45 
Comando SAVE, 48 
Comando SCREEN, 99-161 
Comando SOUND, 128-132 
Comando STOP, 152 
Comando STOP OFF, 154 
Comando STOP ON, 154 
Comando STOP STOP, 154 
Comando TIME, 218-219 
Comando TYPE, 211-213 
Comando W1DTH, 161 
Comando YOUN, 55 
Comandos 

argumentos 
como ler, 199-201 
definição, 44 
especiais, 84 

manutenção de arquivo, 202-211 
MSX-BASIC (Figura A-2), 225-228 
MSX-DOS (Figura B-l), 229 
parando, 201 

utilizações comuns de, 198-199, 202 
utilizando nome de dispositivos em, 188-194 
Comandos deformação, 12 
Computador MSX 

comunicando com, 37-38 
descrição do teclado, 4 


disposição do teclado, 244-245 
integrados internos, 6 
Computadores, aprendendo sobre, 20-21 
Constantes, tipo de, 57 
Cópias de disco de sistema, 180-181 
Cuidado com o sistema, 31-32 
Declaração AUTO, 149-150 
Definição do sistema operacional, 5 
Disco de sistema, cópias de, 180-181 
Discos 

como operam, 24 
definição, 24 
duplicação, 180-181 
organizando os, 160 
Dispositivos, 116-117 
Disquetes, 

definição, 24 

proteção contra gravação, 181-182 
tamanhos comuns, 24 
Domésticas, programas de finanças, 19-20 
Entrada/Safda (E/S), 143 
Expansor de cartucho, 22 
Função INPUTS, 83 
Função LEFTl, 87 
Função PEEK, 144 
Função SPC, 86 
Função TAB, 86 
Funções, 62-67 

definição, 62, 164 
MSX-BASIC (Figura A-2), 228 
Hardware, 

definição, 3-5 
expansão, 22 
Impressoras, 26 
Imprimindo (Impressão) 
avançado, 87-92 
simples, 85-87 
Linguagem assembler 

execução direta de entrada e safdas com, 147 
relacionamento com MSX-BASIC, 144 
LOCATE, comando do MSX-BASIC, 99 
Manipulação de vídeo, 166-167 
Manipuladores, 24-26 

simulando com teclas de cursor (joysticks) ,133-136 
Matrizes, 61-62 

Memória apenas de leitura (ROM), 6 
Memória de acesso aleatório (RAM), 6 
acessando, 144, 146 
adicional, 23 

quantidade necessária para processar MSX-DOS, 7 
Mensagens de erro, 38, 42 

em MSX-BASIC, 154-157 
Memória, limpando, 165 
Modem, 14 


índice analítico 


249 


MSX-BAS1C 

aritmética do, 68-71 
capacidade, 21 

corrigindo erros de digitação em, 43-44, 49-5 1 
iniciando, 40-41 
inserindo comandos em, 41-42 
linguagem assembler Z80, relação com, 144 
mensagem de erro em, 154-157 
regras para, 49-5 1 
restrições para entrar, 5 1-53 
sistemas de numeração em, 62 
sub-rotmas baseadas no tempo em, 163 
vantagens, 36 
MSX-DOS 

arquivos-em-lote em, 173 
comandos externos em, 173 
comandos internos em, 173 
descrição, 171-172 
ínicializando, 174-175 
processando comandos em, 172-173 
Periféricos 

controle de aplicação doméstica, 27 
dispositivos sonoros, 26 
gráficos, 27 
robôs, 28 
Programa 

armazenando , 48 
carregando , 48 
entrando, 44 
iniciando, 29-31 
misturando, 165 
organizando, 54-55 
parando, 80 
pausa, 80 

processando, 45-46 
ramificando, 54-55 
salvando, 48 
Programa aplicativo 

auto-aprendizado, 20 
finanças domésticas, 19-20 
gerenciamento de banco de dados, 17 
gráficos, 96-115 
jogos, 9-10 

planilhas eletrônicas, 15-17 
processamento de palavras, 10-14 
verificação de gravação , 1 2-14 
Programas de comunicação, 14-15 
Programas de finanças domésticas, 19-20 


Programas de games, 9-10 
fliperama, 9 
pensar, 10 
o que esperar de, 9 
Programas em linguagem assembler 
beneficio de, 144 
processamento , 146-147 
Programas de planilhas eletrónicas, 15-17 
Programas de processamento de palavras 
critério para escolha, 12-14 
definição, 10-11 
diferenças entre, 1 1 

Programa de verificação de escrita, 13-14 
Programas gráficos, 97-115 
cores, 97-99 
desenhando ,112-115 
e o computador MSX, 96-97 
modo, 4, 98 
pintando, 110-112 
traçando círculos e curvas, 106-110 
traçando linhas e quadrados, 103*106 
traçando pontos, 100-103 
Programando 

definição, 36-37 
descrição, 36-37 
erro em, 150-154 
escrevendo, 38-39 

RAM (veja memória de acesso aleatório) 

ROM (veja memória apenas de leitura) 

Séries, 56 

como manipular, 7 1 
Sistema, cuidado com, 31-32 
Sistema musical do MSX 
características, 1 23 
tocando, 124-127 

Sistemas de gerenciamento de banco de dados 
(DBMS), 17-19 
Sprites, 117-122 
Software 

definição, 5-6 
dicas para comprai, 8 
Teclas de função, 161-163 
Telecomunicações, 14-15 
Texto, entrando, 115-117 
Variáveis 

alterando valores de, 164 
definição, 56 
tipos, 57 


dS - 00t60 d30 - OctrtVD oa ooa VNM39 ows 
Q0£0-6lt>: 131 • Z/SE ODNWaa 0131SV0 HV3N31V 3a Õ_LH30wnH AW 

JOfip» o/atí SQproaujQi Saiujif ujoo 

VOd VüOliaB 3 VCDIdVHS 

Oiusujeqeoy a ofssajditi| 



OUTROS LIVROS NA ÁREA 

GUIAS DO USUÁRIO 

Castlewitz - VisiCalc - Guia do Usuário 

Curtis — Wordstar — Guia do Usuário — IBM/PC e seus Compatíveis 

Ettlin — Wordstar — Guia do Usuário - Versão 8 bits - CP/M 

Forth — Guia do Usuário - Aprendendo e Programando a Linguagem Forth 

Hogan — CP/M — Guia do Usuário 

Poole — Apple 1 1 - Guia do Usuário — I ! Plus e I le 

Townsend — dBase II — Guia do Usuário 

GUIAS DO OPERADOR 

Burd e Moreira — MSX — Comandos Básicos 
Gifford — Apple 1 1 - Comandos Básicos 
Ingrahan - CP/M — Comandos Básicos 
Wilson - IBM PC - Comandos Básicos 

HARDWARE/SOFTWARE 

Botelho - Basic Prático — Conceitos Fundamentais e Avançados 
Fox/Fox — Iniciação ao Basic 
Gottfried — Programação com Basic (SC) 

Hehl — Fortran IV 

Newcomer — Cobol Estruturado {SC} 

Orilia — Processamento de Dados nas Empresas (SC) 

Osborne - Introdução aos Microcomputadores - vol. 0 
Peckham — Manual de Basic para o Apple II 
Poole — Programas Práticos em Basic 
Poole — Programas Usuais em Basic — Apple II 
Siragusa — Basic Estruturado 
Tremblay - Ciência dos Computadores 
Verzello — Processamento de Dados 
Hardware - volume I 
Software — volume li 


0 07 - 450203-4